{"openapi":"3.1.0","info":{"title":"OilPicker API","version":"1.0.0","summary":"Korean local-currency (지역화폐) fuel discounts, merchant lists and deep links.","description":"주유소 표시 가격에 지역화폐 할인율을 반영한 실질 가격을 비교합니다. 유가는 한국석유공사 오피넷이며, 광고 없는 무료 서비스입니다.\n\nEffective price: discount type = price × (1 − rate); bonus type = price ÷ (1 + rate). Fuel prices come from 한국석유공사 오피넷 and are shown on the site only; no endpoint resells them.","contact":{"url":"https://oilpicker.com/feedback"},"license":{"name":"Data: attribute the listed public sources; non-commercial site","url":"https://oilpicker.com/sources"}},"servers":[{"url":"https://oilpicker.com"}],"externalDocs":{"description":"Guide for AI assistants and agents","url":"https://oilpicker.com/ai"},"paths":{"/":{"get":{"operationId":"openApp","summary":"Deep link: open the app on a region and fuel (HTML, for people).","parameters":[{"name":"region","in":"query","required":false,"schema":{"type":"string","maxLength":40},"description":"지역 이름: 수원, 경기 수원시, 대전, 춘천시, 제주. 도 단위는 시·군까지.","example":"대전"},{"name":"fuel","in":"query","schema":{"type":"string","enum":["휘발유","경유","LPG"]}}],"responses":{"200":{"description":"The OilPicker web app.","content":{"text/html":{}}}}}},"/api/mcp":{"post":{"operationId":"mcp","summary":"MCP server (Streamable HTTP, JSON-RPC 2.0, stateless, no auth).","description":"Tools: local_currency_for_region, oilpicker_link, effective_fuel_price, list_regions, search_merchants. None calls Opinet.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"const":"2.0"},"id":{},"method":{"type":"string"},"params":{"type":"object"}}},"example":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_merchants","arguments":{"region":"대전","query":"국밥"}}}}}},"responses":{"200":{"description":"JSON-RPC response."},"202":{"description":"Notification accepted."}}}},"/api/agent/v1/region":{"get":{"operationId":"paidRegion","summary":"Paid (x402 v2, USDC): a region's local-currency terms and the fuel stations on its public lists.","description":"Answers 404 while charging is off. With charging on: 402 with a base64 PAYMENT-REQUIRED header, then send PAYMENT-SIGNATURE; the response carries PAYMENT-RESPONSE.","parameters":[{"name":"region","in":"query","required":true,"schema":{"type":"string","maxLength":40},"description":"지역 이름: 수원, 경기 수원시, 대전, 춘천시, 제주. 도 단위는 시·군까지.","example":"대전"},{"name":"PAYMENT-SIGNATURE","in":"header","schema":{"type":"string"},"description":"base64 x402 payment payload"}],"responses":{"200":{"description":"Region data."},"402":{"description":"Payment required (x402)."},"404":{"description":"Paid API not open yet."}}}},"/data/merchants/v1/index.json":{"get":{"operationId":"merchantDirectoryIndex","summary":"Static: which regions have public local-currency merchant lists (all categories), with sources and dates.","responses":{"200":{"description":"DirectoryIndex","content":{"application/json":{}}}}}},"/data/merchants/v1/{file}":{"get":{"operationId":"merchantDirectoryFile","summary":"Static: every merchant of one list. Items are {n: name, a: address, c?: category, r?: 1 when the list marks it restricted}.","parameters":[{"name":"file","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]+\\.json$"},"example":"daejeon-15098064.json"}],"responses":{"200":{"description":"DirectoryFile","content":{"application/json":{}}}}}},"/llms.txt":{"get":{"operationId":"llmsTxt","summary":"Plain-text guide for language models.","responses":{"200":{"description":"text/plain","content":{"text/plain":{}}}}}}}}