{"components":{"schemas":{"EcommerceDetail":{"additionalProperties":false,"description":"Full ecommerce store record (detail endpoint).","properties":{"contentTypes":{"items":{"type":"string"},"type":"array"},"descriptionMd":{"anyOf":[{"type":"string"},{"type":"null"}]},"eurauSettlementAvailable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"listingSource":{"enum":["listed","self-listed"],"type":"string"},"name":{"type":"string"},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"payToAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"shortDescription":{"type":"string"},"slug":{"type":"string"},"supportedProtocols":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"trafficTier":{"anyOf":[{"enum":["high","medium","low","unknown"],"type":"string"},{"type":"null"}]},"trustTier":{"enum":["bronze","silver","gold","platinum"],"type":"string"},"websiteUrl":{"type":"string"}},"required":["id","slug","name","shortDescription","websiteUrl","contentTypes","tags","trustTier","listingSource","trafficTier","supportedProtocols","eurauSettlementAvailable","descriptionMd","payToAddress","networkId"],"type":"object"},"EcommerceListItem":{"additionalProperties":false,"description":"Public ecommerce store row (list endpoint column allowlist).","properties":{"contentTypes":{"items":{"type":"string"},"type":"array"},"eurauSettlementAvailable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"listingSource":{"enum":["listed","self-listed"],"type":"string"},"name":{"type":"string"},"shortDescription":{"type":"string"},"slug":{"type":"string"},"supportedProtocols":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"trafficTier":{"anyOf":[{"enum":["high","medium","low","unknown"],"type":"string"},{"type":"null"}]},"trustTier":{"enum":["bronze","silver","gold","platinum"],"type":"string"},"websiteUrl":{"type":"string"}},"required":["id","slug","name","shortDescription","websiteUrl","contentTypes","tags","trustTier","listingSource","trafficTier","supportedProtocols","eurauSettlementAvailable"],"type":"object"},"Error":{"additionalProperties":false,"description":"Uniform error envelope.","properties":{"error":{"type":"string"}},"required":["error"],"type":"object"},"FxQuote":{"additionalProperties":false,"description":"A live FX conversion quote (Fixer.io).","properties":{"amount":{"type":"number"},"cache_ttl_seconds":{"type":"number"},"from":{"type":"string"},"rate":{"type":"number"},"result":{"type":"number"},"source":{"const":"fixer.io","type":"string"},"timestamp":{"type":"string"},"to":{"type":"string"}},"required":["from","to","amount","rate","result","source","timestamp","cache_ttl_seconds"],"type":"object"},"HotelDetail":{"additionalProperties":false,"description":"Full hotel record (detail endpoint).","properties":{"contentTypes":{"items":{"type":"string"},"type":"array"},"descriptionMd":{"anyOf":[{"type":"string"},{"type":"null"}]},"eurauSettlementAvailable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"listingSource":{"enum":["listed","self-listed"],"type":"string"},"name":{"type":"string"},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"payToAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"shortDescription":{"type":"string"},"slug":{"type":"string"},"supportedProtocols":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"trafficTier":{"anyOf":[{"enum":["high","medium","low","unknown"],"type":"string"},{"type":"null"}]},"trustTier":{"enum":["bronze","silver","gold","platinum"],"type":"string"},"websiteUrl":{"type":"string"}},"required":["id","slug","name","shortDescription","websiteUrl","contentTypes","tags","trustTier","listingSource","trafficTier","supportedProtocols","eurauSettlementAvailable","descriptionMd","payToAddress","networkId"],"type":"object"},"HotelListItem":{"additionalProperties":false,"description":"Public hotel row (list endpoint column allowlist).","properties":{"contentTypes":{"items":{"type":"string"},"type":"array"},"eurauSettlementAvailable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"listingSource":{"enum":["listed","self-listed"],"type":"string"},"name":{"type":"string"},"shortDescription":{"type":"string"},"slug":{"type":"string"},"supportedProtocols":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"trafficTier":{"anyOf":[{"enum":["high","medium","low","unknown"],"type":"string"},{"type":"null"}]},"trustTier":{"enum":["bronze","silver","gold","platinum"],"type":"string"},"websiteUrl":{"type":"string"}},"required":["id","slug","name","shortDescription","websiteUrl","contentTypes","tags","trustTier","listingSource","trafficTier","supportedProtocols","eurauSettlementAvailable"],"type":"object"},"PublisherDetail":{"additionalProperties":false,"description":"Full publisher record (detail endpoint, adds two-step search fields).","properties":{"contentTypes":{"items":{"type":"string"},"type":"array"},"descriptionMd":{"anyOf":[{"type":"string"},{"type":"null"}]},"eurauSettlementAvailable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"listingSource":{"enum":["listed","self-listed"],"type":"string"},"name":{"type":"string"},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"payToAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"rssFeedUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"sampleUrls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"searchPattern":{"anyOf":[{"type":"string"},{"type":"null"}]},"shortDescription":{"type":"string"},"slug":{"type":"string"},"supportedProtocols":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"trafficTier":{"anyOf":[{"enum":["high","medium","low","unknown"],"type":"string"},{"type":"null"}]},"trustTier":{"enum":["bronze","silver","gold","platinum"],"type":"string"},"usdcPricePerRequest":{"anyOf":[{"type":"string"},{"type":"null"}]},"websiteUrl":{"type":"string"}},"required":["id","slug","name","shortDescription","websiteUrl","contentTypes","tags","trustTier","listingSource","trafficTier","supportedProtocols","eurauSettlementAvailable","usdcPricePerRequest","descriptionMd","payToAddress","networkId","searchPattern","sampleUrls","rssFeedUrl"],"type":"object"},"PublisherListItem":{"additionalProperties":false,"description":"Public publisher row (list endpoint column allowlist).","properties":{"contentTypes":{"items":{"type":"string"},"type":"array"},"eurauSettlementAvailable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"listingSource":{"enum":["listed","self-listed"],"type":"string"},"name":{"type":"string"},"shortDescription":{"type":"string"},"slug":{"type":"string"},"supportedProtocols":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"trafficTier":{"anyOf":[{"enum":["high","medium","low","unknown"],"type":"string"},{"type":"null"}]},"trustTier":{"enum":["bronze","silver","gold","platinum"],"type":"string"},"usdcPricePerRequest":{"anyOf":[{"type":"string"},{"type":"null"}]},"websiteUrl":{"type":"string"}},"required":["id","slug","name","shortDescription","websiteUrl","contentTypes","tags","trustTier","listingSource","trafficTier","supportedProtocols","eurauSettlementAvailable","usdcPricePerRequest"],"type":"object"},"SaasDetail":{"additionalProperties":false,"description":"Full SaaS company record (detail endpoint).","properties":{"contentTypes":{"items":{"type":"string"},"type":"array"},"descriptionMd":{"anyOf":[{"type":"string"},{"type":"null"}]},"eurauSettlementAvailable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"listingSource":{"enum":["listed","self-listed"],"type":"string"},"name":{"type":"string"},"networkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"payToAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"shortDescription":{"type":"string"},"slug":{"type":"string"},"supportedProtocols":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"trafficTier":{"anyOf":[{"enum":["high","medium","low","unknown"],"type":"string"},{"type":"null"}]},"trustTier":{"enum":["bronze","silver","gold","platinum"],"type":"string"},"websiteUrl":{"type":"string"}},"required":["id","slug","name","shortDescription","websiteUrl","contentTypes","tags","trustTier","listingSource","trafficTier","supportedProtocols","eurauSettlementAvailable","descriptionMd","payToAddress","networkId"],"type":"object"},"SaasListItem":{"additionalProperties":false,"description":"Public SaaS company row (list endpoint column allowlist).","properties":{"contentTypes":{"items":{"type":"string"},"type":"array"},"eurauSettlementAvailable":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"id":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","type":"string"},"listingSource":{"enum":["listed","self-listed"],"type":"string"},"name":{"type":"string"},"shortDescription":{"type":"string"},"slug":{"type":"string"},"supportedProtocols":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"trafficTier":{"anyOf":[{"enum":["high","medium","low","unknown"],"type":"string"},{"type":"null"}]},"trustTier":{"enum":["bronze","silver","gold","platinum"],"type":"string"},"websiteUrl":{"type":"string"}},"required":["id","slug","name","shortDescription","websiteUrl","contentTypes","tags","trustTier","listingSource","trafficTier","supportedProtocols","eurauSettlementAvailable"],"type":"object"},"ValidationError":{"additionalProperties":false,"description":"Query/param validation failure with the raw Zod issue list.","properties":{"error":{"type":"string"},"issues":{"items":{},"type":"array"}},"required":["error","issues"],"type":"object"}},"securitySchemes":{"apiKey":{"description":"Operator API key (bcrypt-hashed server-side). Mint with `bun run seed:operator-key` — see postman/README.md.","in":"header","name":"X-API-Key","type":"apiKey"}}},"info":{"contact":{"name":"Bluerails","url":"https://402.bluerails.com"},"description":"Protocol-agnostic registry and settlement layer for agentic payments. Discover EU/DACH publishers, hotels, ecommerce stores, and SaaS companies, and book & pay for hotel stays end-to-end with x402 USDC micropayments via MCP.","license":{"name":"CC-BY-4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"title":"bluerails402 Registry","version":"1.0.0","x-guidance":"How to use this API as an agent:\n1) Discovery: GET /openapi.json for the full spec. GET /.well-known/x402 for the paid-resource list if you prefer a minimal catalog.\n2) List publishers: GET /api/publishers?q=<topic>&protocol=x402 — paginated array, all public, no auth. Hotels are also at GET /api/hotels.\n3) Get publisher detail: GET /api/publishers/<slug> — full publisher record. Its x-payment-info is FORWARD-DECLARED (advertises intended pricing): the endpoint returns 200 for free today and issues no 402 — do not pre-emptively attempt payment.\n4) Use MCP (preferred): POST /mcp. Public tools need no auth: list_publishers, get_publisher, list_hotels, get_hotel, list_ecommerce, get_ecommerce_store, list_saas, get_saas_company, hotel_check_availability, plus the booking/payment tools hotel_book, hotel_pay, hotel_status. hotel_book is PUBLIC — its x402 USDC payment proof (sent via the request _meta), not an API key, is its sole gate. Only get_fx_quote, fetch_content, hotel_capture, and hotel_cancel require an X-API-Key operator header. (hotel_book/hotel_capture/hotel_cancel are registered on production only.)\n5) Payment: if an endpoint or tool returns 402, read the PAYMENT-REQUIRED / x402 challenge for the payment spec and retry with the signed USDC payment.","x-service-info":{"categories":["media","micropayments","publishers","hotels","ecommerce","saas","agentic-payments"],"docs":{"apiReference":"https://402.bluerails.com/openapi.json","homepage":"https://402.bluerails.com","llms":"https://402.bluerails.com/llms.txt","llmsFull":"https://402.bluerails.com/llms-full.txt","mcp":"https://402.bluerails.com/mcp"}}},"openapi":"3.1.0","paths":{"/":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"Home page","tags":["Pages"],"x-audience":"public","x-auth":"none"}},"/.well-known/x402":{"get":{"responses":{"200":{"content":{"application/json":{}},"description":"OK"}},"summary":"x402 paid-resource manifest","tags":["Manifests"],"x-audience":"public","x-auth":"none"}},"/SKILL.md":{"get":{"responses":{"200":{"content":{"text/markdown":{}},"description":"OK"}},"summary":"Agent skill manifest","tags":["Manifests"],"x-audience":"public","x-auth":"none"}},"/api/ecommerce":{"get":{"description":"Paginated list of active ecommerce stores. Public, no auth.","parameters":[{"in":"query","name":"q","schema":{"maxLength":200,"type":"string"}},{"in":"query","name":"category","schema":{"enum":["fashion","beauty","home","food","electronics","sports","kids","pets","health","jewelry","auto","general"],"type":"string"}},{"in":"query","name":"country","schema":{"enum":["de","at","ch"],"type":"string"}},{"in":"query","name":"page","schema":{"default":1,"maximum":1000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/EcommerceListItem"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Bad Request"}},"summary":"List ecommerce stores","tags":["Ecommerce"],"x-audience":"public","x-auth":"none"}},"/api/ecommerce/{slug}":{"get":{"description":"Single ecommerce store by slug. Public, no auth.","parameters":[{"in":"path","name":"slug","required":true,"schema":{"maxLength":100,"minLength":1,"pattern":"^[\\da-z-]+$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EcommerceDetail"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"}},"summary":"Get ecommerce store by slug","tags":["Ecommerce"],"x-audience":"public","x-auth":"none"}},"/api/fx-quote":{"get":{"description":"Live FX rate via Fixer.io. Requires X-API-Key with get_fx_quote scope (CR-04).","parameters":[{"description":"ISO 4217 currency code (e.g. USD, EUR)","in":"query","name":"from","required":true,"schema":{"description":"ISO 4217 currency code (e.g. USD, EUR)","maxLength":5,"minLength":3,"type":"string"}},{"description":"ISO 4217 currency code (e.g. EUR, GBP)","in":"query","name":"to","required":true,"schema":{"description":"ISO 4217 currency code (e.g. EUR, GBP)","maxLength":5,"minLength":3,"type":"string"}},{"in":"query","name":"amount","required":true,"schema":{"exclusiveMinimum":0,"maximum":1000000,"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FxQuote"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"502"}},"security":[{"apiKey":[]}],"summary":"Live FX quote","tags":["Hotels"],"x-audience":"public","x-auth":"api-key"}},"/api/hotels":{"get":{"description":"Paginated list of active hotels. Public, no auth.","parameters":[{"in":"query","name":"q","schema":{"maxLength":200,"type":"string"}},{"in":"query","name":"city","schema":{"enum":["berlin","munich","vienna","zurich","frankfurt","hamburg","waldbronn"],"type":"string"}},{"in":"query","name":"star_rating","schema":{"enum":["3-star","4-star","5-star","boutique"],"type":"string"}},{"in":"query","name":"chain","schema":{"enum":["marriott-group","tui-hotels","steigenberger","accor","h-world","independent"],"type":"string"}},{"in":"query","name":"price_range","schema":{"enum":["budget","mid-range","luxury","ultra-luxury"],"type":"string"}},{"in":"query","name":"page","schema":{"default":1,"maximum":1000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/HotelListItem"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Bad Request"}},"summary":"List hotels","tags":["Hotels"],"x-audience":"public","x-auth":"none"}},"/api/hotels/{slug}":{"get":{"description":"Single hotel by slug. Public, no auth.","parameters":[{"in":"path","name":"slug","required":true,"schema":{"maxLength":100,"minLength":1,"pattern":"^[\\da-z-]+$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HotelDetail"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"}},"summary":"Get hotel by slug","tags":["Hotels"],"x-audience":"public","x-auth":"none"}},"/api/publishers":{"get":{"description":"Paginated list of active publishers. Public, no auth.","parameters":[{"in":"query","name":"q","schema":{"maxLength":200,"type":"string"}},{"in":"query","name":"content_type","schema":{"enum":["news","financial_data","research","media","legal","sports","entertainment","technology"],"type":"string"}},{"in":"query","name":"protocol","schema":{"enum":["x402","mpp","l402"],"type":"string"}},{"in":"query","name":"page","schema":{"default":1,"maximum":1000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/PublisherListItem"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Bad Request"}},"summary":"List publishers","tags":["Publishers"],"x-audience":"public","x-auth":"none"}},"/api/publishers/{slug}":{"get":{"description":"Single publisher by slug. Public, no auth.","parameters":[{"in":"path","name":"slug","required":true,"schema":{"maxLength":100,"minLength":1,"pattern":"^[\\da-z-]+$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublisherDetail"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"}},"summary":"Get publisher by slug","tags":["Publishers"],"x-audience":"public","x-auth":"none","x-payment-info":{"note":"Inactive/example: GET /api/publishers/{slug} returns 200 for free today and issues no x402/402 challenge. Advertises the intended per-record price for when registry-indexed monetization is enabled. Do not pre-emptively attempt payment.","offers":[{"amount":"1000","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","description":"EXAMPLE offer (forward-declared, inactive): USDC on Base — access one publisher record. Not billed today.","intent":"charge","method":"x402","network":"base-mainnet"}],"protocols":["x402","mpp"],"x-status":"forward-declared"}}},"/api/saas":{"get":{"description":"Paginated list of active SaaS companies. Public, no auth.","parameters":[{"in":"query","name":"q","schema":{"maxLength":200,"type":"string"}},{"in":"query","name":"category","schema":{"enum":["hrtech","fintech","devtools","marketing","sales","analytics","infrastructure","ecommerce-saas","health","legal","proptech","edtech","logistics"],"type":"string"}},{"in":"query","name":"country","schema":{"enum":["de","fr","nl","se","dk","fi","be","at","ch","es","it","pt","pl","cz","ie"],"type":"string"}},{"in":"query","name":"stage","schema":{"enum":["early","growth","established"],"type":"string"}},{"in":"query","name":"page","schema":{"default":1,"maximum":1000,"minimum":1,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SaasListItem"},"type":"array"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}},"description":"Bad Request"}},"summary":"List SaaS companies","tags":["SaaS"],"x-audience":"public","x-auth":"none"}},"/api/saas/{slug}":{"get":{"description":"Single SaaS company by slug. Public, no auth.","parameters":[{"in":"path","name":"slug","required":true,"schema":{"maxLength":100,"minLength":1,"pattern":"^[\\da-z-]+$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaasDetail"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"}},"summary":"Get SaaS company by slug","tags":["SaaS"],"x-audience":"public","x-auth":"none"}},"/apply":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"Publisher application form","tags":["Pages"],"x-audience":"public","x-auth":"none"}},"/docs":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"Documentation index","tags":["Pages"],"x-audience":"public","x-auth":"none"}},"/ecommerce":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"Ecommerce directory","tags":["Ecommerce"],"x-audience":"public","x-auth":"none"}},"/ecommerce/{slug}":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"Ecommerce store detail page","tags":["Ecommerce"],"x-audience":"public","x-auth":"none"}},"/hotels":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"Hotel directory","tags":["Hotels"],"x-audience":"public","x-auth":"none"}},"/hotels/{slug}":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"Hotel detail page","tags":["Hotels"],"x-audience":"public","x-auth":"none"}},"/how-it-works":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"How-it-works page","tags":["Pages"],"x-audience":"public","x-auth":"none"}},"/llms-full.txt":{"get":{"responses":{"200":{"content":{"text/plain":{}},"description":"OK"}},"summary":"Full LLM discovery manifest","tags":["Manifests"],"x-audience":"public","x-auth":"none"}},"/llms.txt":{"get":{"responses":{"200":{"content":{"text/plain":{}},"description":"OK"}},"summary":"LLM discovery manifest","tags":["Manifests"],"x-audience":"public","x-auth":"none"}},"/openapi.json":{"get":{"responses":{"200":{"content":{"application/json":{}},"description":"OK"}},"summary":"This OpenAPI document","tags":["Manifests"],"x-audience":"public","x-auth":"none"}},"/publishers":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"Publisher directory","tags":["Publishers"],"x-audience":"public","x-auth":"none"}},"/publishers/{slug}":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"Publisher detail page","tags":["Publishers"],"x-audience":"public","x-auth":"none"}},"/robots.txt":{"get":{"responses":{"200":{"content":{"text/plain":{}},"description":"OK"}},"summary":"Robots exclusion manifest","tags":["Manifests"],"x-audience":"public","x-auth":"none"}},"/saas":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"SaaS directory","tags":["SaaS"],"x-audience":"public","x-auth":"none"}},"/saas/{slug}":{"get":{"responses":{"200":{"content":{"text/html":{}},"description":"OK"}},"summary":"SaaS company detail page","tags":["SaaS"],"x-audience":"public","x-auth":"none"}},"/sitemap.xml":{"get":{"responses":{"200":{"content":{"application/xml":{}},"description":"OK"}},"summary":"XML sitemap","tags":["Manifests"],"x-audience":"public","x-auth":"none"}}},"servers":[{"description":"Production","url":"https://402.bluerails.com"},{"description":"Local","url":"http://localhost:3000"}],"tags":[{"description":"Publisher registry — directory + detail (public).","name":"Publishers"},{"description":"Hotel registry + live FX quote for USDC settlement.","name":"Hotels"},{"description":"Ecommerce store registry — directory + detail (public).","name":"Ecommerce"},{"description":"SaaS company registry — directory + detail (public).","name":"SaaS"},{"description":"Server-rendered HTML pages (public).","name":"Pages"},{"description":"Discovery + well-known manifests (llms.txt, sitemap, x402, SKILL.md, …).","name":"Manifests"}],"x-generated":true,"x-payment-info":{"currency":"USDC","facilitator":"bluerails402","network":"base-mainnet","protocol":"x402"}}