{"service":{"id":"heat_risk_briefing","name":"El Nino Wiki","description":"Assess heat stress for a supported city baseline or supplied weather conditions and return an actionable briefing.","version":"1.0.0","domain":"https://elnino.wiki"},"protocols":{"x402":{"domain":"https://x402.elnino.wiki","version":2,"network":"eip155:8453","currency":"USDC","currency_address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"mpp":{"domain":"https://mpp.elnino.wiki","method":"tempo","intent":"charge","network":"Tempo","currency":"USDC","currency_address":"0x20c000000000000000000000b9537d11c60e8b50"}},"operations":[{"id":"heat_risk_briefing.preview","name":"Preview heat-risk briefing","tier":"preview","description":"Risk score, status, peak window, and two priority actions.","method":"POST","price":{"amount":"0.02","unit":"USD"},"payment_options":[{"protocol":"x402","endpoint":"https://x402.elnino.wiki/api/x402/v1/preview","currency":"USDC","network":"eip155:8453"},{"protocol":"mpp","endpoint":"https://mpp.elnino.wiki/api/mpp/v1/preview","currency":"USDC","network":"Tempo"}],"input_schema":{"type":"object","additionalProperties":false,"required":["tier"],"properties":{"tier":{"type":"string","enum":["preview","standard","premium"],"description":"Depth of the requested briefing."},"city_slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9-]+$","description":"Supported city slug such as paris, phoenix, or new-york."},"conditions":{"type":"object","additionalProperties":false,"required":["label","temperature_c","feels_like_c","humidity_percent","uv_index","wind_kph","overnight_low_c"],"properties":{"label":{"type":"string","minLength":2,"maxLength":120},"temperature_c":{"type":"number","minimum":-20,"maximum":60},"feels_like_c":{"type":"number","minimum":-30,"maximum":70},"humidity_percent":{"type":"number","minimum":0,"maximum":100},"uv_index":{"type":"number","minimum":0,"maximum":20},"wind_kph":{"type":"number","minimum":0,"maximum":200},"overnight_low_c":{"type":"number","minimum":-30,"maximum":50},"peak_window":{"type":"string","minLength":3,"maxLength":40}}},"exposure":{"type":"object","additionalProperties":false,"properties":{"exertion":{"type":"string","enum":["low","moderate","high"]},"shade":{"type":"string","enum":["none","partial","full"]},"duration_minutes":{"type":"integer","minimum":10,"maximum":720},"vulnerable_person":{"type":"boolean"},"start_local":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}}}},"oneOf":[{"required":["city_slug"],"not":{"required":["conditions"]}},{"required":["conditions"],"not":{"required":["city_slug"]}}]},"example_request":{"tier":"preview","city_slug":"phoenix","exposure":{"exertion":"moderate","shade":"partial","duration_minutes":90}},"response_summary":"Risk score, status, peak window, and two priority actions."},{"id":"heat_risk_briefing.standard","name":"Standard heat-risk briefing","tier":"standard","description":"Full factor attribution and an actionable heat-safety briefing.","method":"POST","price":{"amount":"1.00","unit":"USD"},"payment_options":[{"protocol":"x402","endpoint":"https://x402.elnino.wiki/api/x402/v1/execute","currency":"USDC","network":"eip155:8453"},{"protocol":"mpp","endpoint":"https://mpp.elnino.wiki/api/mpp/v1/execute","currency":"USDC","network":"Tempo"}],"input_schema":{"type":"object","additionalProperties":false,"required":["tier"],"properties":{"tier":{"type":"string","enum":["preview","standard","premium"],"description":"Depth of the requested briefing."},"city_slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9-]+$","description":"Supported city slug such as paris, phoenix, or new-york."},"conditions":{"type":"object","additionalProperties":false,"required":["label","temperature_c","feels_like_c","humidity_percent","uv_index","wind_kph","overnight_low_c"],"properties":{"label":{"type":"string","minLength":2,"maxLength":120},"temperature_c":{"type":"number","minimum":-20,"maximum":60},"feels_like_c":{"type":"number","minimum":-30,"maximum":70},"humidity_percent":{"type":"number","minimum":0,"maximum":100},"uv_index":{"type":"number","minimum":0,"maximum":20},"wind_kph":{"type":"number","minimum":0,"maximum":200},"overnight_low_c":{"type":"number","minimum":-30,"maximum":50},"peak_window":{"type":"string","minLength":3,"maxLength":40}}},"exposure":{"type":"object","additionalProperties":false,"properties":{"exertion":{"type":"string","enum":["low","moderate","high"]},"shade":{"type":"string","enum":["none","partial","full"]},"duration_minutes":{"type":"integer","minimum":10,"maximum":720},"vulnerable_person":{"type":"boolean"},"start_local":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}}}},"oneOf":[{"required":["city_slug"],"not":{"required":["conditions"]}},{"required":["conditions"],"not":{"required":["city_slug"]}}]},"example_request":{"tier":"standard","city_slug":"phoenix","exposure":{"exertion":"moderate","shade":"partial","duration_minutes":90}},"response_summary":"Full factor attribution and an actionable heat-safety briefing."},{"id":"heat_risk_briefing.premium","name":"Premium heat-risk briefing","tier":"premium","description":"Exposure-sensitive briefing with a time-window plan for people, work, travel, or events.","method":"POST","price":{"amount":"3.00","unit":"USD"},"payment_options":[{"protocol":"x402","endpoint":"https://x402.elnino.wiki/api/x402/v1/premium","currency":"USDC","network":"eip155:8453"},{"protocol":"mpp","endpoint":"https://mpp.elnino.wiki/api/mpp/v1/premium","currency":"USDC","network":"Tempo"}],"input_schema":{"type":"object","additionalProperties":false,"required":["tier"],"properties":{"tier":{"type":"string","enum":["preview","standard","premium"],"description":"Depth of the requested briefing."},"city_slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9-]+$","description":"Supported city slug such as paris, phoenix, or new-york."},"conditions":{"type":"object","additionalProperties":false,"required":["label","temperature_c","feels_like_c","humidity_percent","uv_index","wind_kph","overnight_low_c"],"properties":{"label":{"type":"string","minLength":2,"maxLength":120},"temperature_c":{"type":"number","minimum":-20,"maximum":60},"feels_like_c":{"type":"number","minimum":-30,"maximum":70},"humidity_percent":{"type":"number","minimum":0,"maximum":100},"uv_index":{"type":"number","minimum":0,"maximum":20},"wind_kph":{"type":"number","minimum":0,"maximum":200},"overnight_low_c":{"type":"number","minimum":-30,"maximum":50},"peak_window":{"type":"string","minLength":3,"maxLength":40}}},"exposure":{"type":"object","additionalProperties":false,"properties":{"exertion":{"type":"string","enum":["low","moderate","high"]},"shade":{"type":"string","enum":["none","partial","full"]},"duration_minutes":{"type":"integer","minimum":10,"maximum":720},"vulnerable_person":{"type":"boolean"},"start_local":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}}}},"oneOf":[{"required":["city_slug"],"not":{"required":["conditions"]}},{"required":["conditions"],"not":{"required":["city_slug"]}}]},"example_request":{"tier":"premium","city_slug":"phoenix","exposure":{"exertion":"moderate","shade":"partial","duration_minutes":90}},"response_summary":"Exposure-sensitive briefing with a time-window plan for people, work, travel, or events."}],"discovery":{"openapi":"https://elnino.wiki/openapi.json","llms":"https://elnino.wiki/llms.txt","agent_card":"https://elnino.wiki/.well-known/agent.json","agent_registration":"https://elnino.wiki/.well-known/agent-registration.json","mcp":"https://elnino.wiki/mcp","quickstart":"https://elnino.wiki/docs/quickstart.md","payments":"https://elnino.wiki/docs/payments.md"},"manifest":{"project":{"name":"El Nino Wiki","tagline":"Decision-ready heat-risk briefings for cities and outdoor plans.","description":"A deterministic heat-risk assessment service for Europe and USA city baselines or caller-supplied weather conditions. It returns a transparent risk score, peak-risk window, contributing factors, and tier-specific safety actions.","lore":"The original El Nino Barometer turns complex heat signals into a plain-language scale from Safe to El Nino Mode. The paid service keeps that visual language while making the calculation structured, inspectable, and usable by AI agents.","domain":"https://elnino.wiki","logo":"/logo.png","contact":"support@elnino.wiki","contacts":{"support":"support@elnino.wiki","general":"contact@elnino.wiki","security":"security@elnino.wiki"},"documentation":{"api_reference":"/docs","quickstart":"/docs/quickstart.md","payments":"/docs/payments.md","agents":"/agents","contact":"/contact"}},"service":{"capability_id":"heat_risk_briefing","capability_description":"Assess heat stress for a supported city baseline or supplied weather conditions and return an actionable briefing.","use_when":"Use before scheduling travel, outdoor work, exercise, events, or care checks in hot weather. Supply current forecast conditions when a live decision is required; built-in city data are published planning baselines, not live observations.","input_schema":{"type":"object","additionalProperties":false,"required":["tier"],"properties":{"tier":{"type":"string","enum":["preview","standard","premium"],"description":"Depth of the requested briefing."},"city_slug":{"type":"string","minLength":2,"maxLength":64,"pattern":"^[a-z0-9-]+$","description":"Supported city slug such as paris, phoenix, or new-york."},"conditions":{"type":"object","additionalProperties":false,"required":["label","temperature_c","feels_like_c","humidity_percent","uv_index","wind_kph","overnight_low_c"],"properties":{"label":{"type":"string","minLength":2,"maxLength":120},"temperature_c":{"type":"number","minimum":-20,"maximum":60},"feels_like_c":{"type":"number","minimum":-30,"maximum":70},"humidity_percent":{"type":"number","minimum":0,"maximum":100},"uv_index":{"type":"number","minimum":0,"maximum":20},"wind_kph":{"type":"number","minimum":0,"maximum":200},"overnight_low_c":{"type":"number","minimum":-30,"maximum":50},"peak_window":{"type":"string","minLength":3,"maxLength":40}}},"exposure":{"type":"object","additionalProperties":false,"properties":{"exertion":{"type":"string","enum":["low","moderate","high"]},"shade":{"type":"string","enum":["none","partial","full"]},"duration_minutes":{"type":"integer","minimum":10,"maximum":720},"vulnerable_person":{"type":"boolean"},"start_local":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"}}}},"oneOf":[{"required":["city_slug"],"not":{"required":["conditions"]}},{"required":["conditions"],"not":{"required":["city_slug"]}}]},"output_schema":{"type":"object","additionalProperties":false,"required":["request_id","tier","location","risk_score","status","peak_window","summary","factors","recommendations","provenance","disclaimer"],"properties":{"request_id":{"type":"string"},"tier":{"type":"string","enum":["preview","standard","premium"]},"location":{"type":"string"},"risk_score":{"type":"integer","minimum":0,"maximum":100},"status":{"type":"string","enum":["Safe","Warm","Caution","Danger","El Nino Mode"]},"peak_window":{"type":"string"},"summary":{"type":"string"},"factors":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","impact","evidence"],"properties":{"name":{"type":"string"},"impact":{"type":"string","enum":["lowers-risk","neutral","raises-risk","major-driver"]},"evidence":{"type":"string"}}}},"recommendations":{"type":"array","minItems":1,"items":{"type":"string"}},"schedule":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["window","guidance"],"properties":{"window":{"type":"string"},"guidance":{"type":"string"}}}},"provenance":{"type":"object","additionalProperties":false,"required":["source_type","freshness"],"properties":{"source_type":{"type":"string","enum":["published-city-baseline","caller-supplied-conditions"]},"freshness":{"type":"string"}}},"disclaimer":{"type":"string"}}}},"pricing":{"preview":{"enabled":true,"price_usd":0.02,"result":"Risk score, status, peak window, and two priority actions."},"standard":{"enabled":true,"price_usd":1,"result":"Full factor attribution and an actionable heat-safety briefing."},"premium":{"enabled":true,"price_usd":3,"result":"Exposure-sensitive briefing with a time-window plan for people, work, travel, or events."}},"payments":{"x402":{"enabled":true,"domain":"https://x402.elnino.wiki","version":2,"scheme":"exact","network":"eip155:8453","asset":"USDC","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","discovery":"Bazaar extension"},"mpp":{"enabled":true,"domain":"https://mpp.elnino.wiki","method":"tempo","intent":"charge","network":"Tempo","asset":"USDC","currency":"0x20c000000000000000000000b9537d11c60e8b50","discovery":"OpenAPI x-payment-info"}},"endpoints":{"health":"/api/health","services":"/api/services","legacy_health":"/api/v1/health","legacy_info":"/api/v1/info","preview":"/api/v1/preview","execute":"/api/v1/execute","x402_preview":"/api/x402/v1/preview","x402":"/api/x402/v1/execute","x402_premium":"/api/x402/v1/premium","mpp_preview":"/api/mpp/v1/preview","mpp":"/api/mpp/v1/execute","mpp_premium":"/api/mpp/v1/premium","mcp":"/mcp","openapi":"/openapi.json","llms":"/llms.txt","agent_card":"/.well-known/agent.json","agent_registration":"/.well-known/agent-registration.json","contact":"/api/contact"},"storage":{"type":"sqlite","path_env":"OPERATION_STORE_PATH","production_path":"/app/data/operations.sqlite","retention_days":30,"journal_mode":"WAL"},"limits":{"timeout_ms":8000,"body_bytes":16384,"anonymous_preview_per_minute":5,"paid_requests_per_minute":30}}}