{"ok":true,"site":{"host":"peskio.com","url":"https://peskio.com/en","type":"live","desc":"Know when and where to fish","tools":[{"name":"places_search","kind":"act","impl":"imperative","description":"Resolve a town, beach, harbour or cove name to Peskio placeIds (Europe, North Africa and US coasts). Call this first whenever the user names a place, then pass the placeId to the other tools. candidates[0] is the best match: when `ambiguous` is false, use it without asking (a harbour or beach listed after a town of the same name is part of that place). Ask which one the user means only when `ambiguous` is true (the same name in different regions). Never ask the user for coordinates.","title":"Find a place","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":100,"description":"The place name as the user wrote it, optionally with its region."},"country":{"description":"ISO 3166-1 alpha-2 code, lower case, to restrict to one country.","type":"string","pattern":"^[a-z]{2}$"},"limit":{"default":5,"type":"integer","minimum":1,"maximum":10},"lang":{"description":"The user's language (ISO 639-1; one of Peskio's 15, otherwise 'en'). Picks the peskio.com page language and local place names; answer in the user's language yourself. When omitted, the language of the page is used.","type":"string","enum":["en","es","fr","ca","el","it","tr","ar","no","sv","da","pt","de","nl","hr"]}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/en","pages":["/en","/es","/fr","/ca","/el","/en/al"]},{"name":"places_get_profile","kind":"act","impl":"imperative","description":"What a place is: tide regime and range, coast exposure and which wind/swell directions it is sheltered from or exposed to, distance to the nearest river mouth, nearby places and landmarks. Use for \"is X sheltered from a north wind?\", \"big or small tides here?\" and \"near a river mouth?\". Does not cover species, depth or dive sites.","title":"Place profile","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"placeId":{"type":"string","pattern":"^[a-z]{2}:[a-zA-Z0-9_.:-]{1,100}$","description":"Peskio place id returned by places_search, e.g. \"es:es-3108877\". Never invent one. Optional in this browser tab: when omitted, the place currently open in the tab is used."},"lang":{"description":"The user's language (ISO 639-1; one of Peskio's 15, otherwise 'en'). Picks the peskio.com page language and local place names; answer in the user's language yourself. When omitted, the language of the page is used.","type":"string","enum":["en","es","fr","ca","el","it","tr","ar","no","sv","da","pt","de","nl","hr"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/en","pages":["/en","/es","/fr","/ca","/el","/en/al"]},{"name":"tides_get_table","kind":"act","impl":"imperative","description":"Tide times, heights and Peskio coefficient estimates for one place over up to two weeks, with sunrise, sunset, daylight low tides and moon phase. Use for tide times, spring/neap tides, grandes marées, pêche à pied, tidal islands and boat launching. Heights are in metres above the stated datum. Information only: for tidal crossings, tell the user to follow the official crossing schedule. Peskio has no tidal-current or slack-water data: never derive them from these times. Explicitly label coefficients as Peskio estimates in the user language (French: estimation Peskio). Include a clickable link to place.url exactly as returned, query string included.","title":"Tide table","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"placeId":{"type":"string","pattern":"^[a-z]{2}:[a-zA-Z0-9_.:-]{1,100}$","description":"Peskio place id returned by places_search, e.g. \"es:es-3108877\". Never invent one. Optional in this browser tab: when omitted, the place currently open in the tab is used."},"from":{"description":"First local date: YYYY-MM-DD, 'today', 'tomorrow' or an English weekday (the next one, today included); default today at the place. When omitted for the place open in the tab, the date shown in the tab is used; otherwise today.","type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|[tT]oday|[tT]omorrow|[mM]onday|[tT]uesday|[wW]ednesday|[tT]hursday|[fF]riday|[sS]aturday|[sS]unday)$"},"date":{"description":"Alias of `from` (the name the other Peskio tools use); `from` wins when both are given. When omitted for the place open in the tab, the date shown in the tab is used; otherwise today.","type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|[tT]oday|[tT]omorrow|[mM]onday|[tT]uesday|[wW]ednesday|[tT]hursday|[fF]riday|[sS]aturday|[sS]unday)$"},"days":{"default":7,"type":"integer","minimum":1,"maximum":14},"minCoefficient":{"description":"Keep only days whose Peskio coefficient is at least this. Grandes marées: 95. Pêche à pied: 70.","type":"integer","minimum":20,"maximum":120},"daylightLowOnly":{"default":false,"description":"Keep only days with a low tide in daylight.","type":"boolean"},"rankBy":{"description":"coefficient = biggest first; low_tide = lowest low first; moon = closest to new/full moon first. Omit for date order.","type":"string","enum":["coefficient","low_tide","moon"]},"lang":{"description":"The user's language (ISO 639-1; one of Peskio's 15, otherwise 'en'). Picks the peskio.com page language and local place names; answer in the user's language yourself. When omitted, the language of the page is used.","type":"string","enum":["en","es","fr","ca","el","it","tr","ar","no","sv","da","pt","de","nl","hr"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/en","pages":["/en","/es","/fr","/ca","/el","/en/al"]},{"name":"conditions_get_day","kind":"act","impl":"imperative","description":"One place, one day: bite score and best windows, go/marginal/no verdict per discipline (shore, boat, rock, kayak, spearfishing) with reasons, tide, sun, moon and solunar periods, wind and sea summary, water-clarity estimate, and how fresh the forecast is. Use for \"is tomorrow good for…\", \"why is Saturday poor\", \"too rough today?\", \"water temperature now\" (include hourly). Peskio has no current or slack-water data: never infer them from tide times. Surface temperature and clarity only: no temperature or visibility at depth or thermocline; never infer them. Include a clickable link to the returned place.url with its query string unchanged. State the returned planning disclaimer when giving GO/marginal/NO; never assess whether a crossing, dive or trip is safe.","title":"Fishing conditions for a day","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"placeId":{"type":"string","pattern":"^[a-z]{2}:[a-zA-Z0-9_.:-]{1,100}$","description":"Peskio place id returned by places_search, e.g. \"es:es-3108877\". Never invent one. Optional in this browser tab: when omitted, the place currently open in the tab is used."},"date":{"description":"Local date at the place: YYYY-MM-DD, 'today', 'tomorrow' or an English weekday (the next one, today included); default today. When omitted for the place open in the tab, the date shown in the tab is used; otherwise today.","type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|[tT]oday|[tT]omorrow|[mM]onday|[tT]uesday|[wW]ednesday|[tT]hursday|[fF]riday|[sS]aturday|[sS]unday)$"},"discipline":{"description":"Only this discipline in decision.disciplines; default all five.","type":"string","enum":["shore","boat","rock","kayak","spearfishing"]},"include":{"default":[],"description":"\"hourly\" for time-of-day or \"right now\" questions; \"tideCurve\" for a tide chart.","maxItems":2,"type":"array","items":{"type":"string","enum":["hourly","tideCurve"]}},"audience":{"default":"angler","description":"Who the answer is for.","type":"string","enum":["angler"]},"lang":{"description":"The user's language (ISO 639-1; one of Peskio's 15, otherwise 'en'). Picks the peskio.com page language and local place names; answer in the user's language yourself. When omitted, the language of the page is used.","type":"string","enum":["en","es","fr","ca","el","it","tr","ar","no","sv","da","pt","de","nl","hr"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/en","pages":["/en","/es","/fr","/ca","/el","/en/al"]},{"name":"conditions_compare_days","kind":"act","impl":"imperative","description":"Rank up to 7 consecutive days at one place by bite score (default), verdict (overall or for one discipline) or water clarity, with tide coefficient, lowest low, moon and a wind/wave headline per day. Use for \"best day to fish this weekend\", \"today or Thursday?\", \"clearest day this week\". Name the days with `dates` and let the server resolve them: \"this weekend\" -> dates: [\"weekend\"]; \"today or Thursday\" -> dates: [\"today\", \"thursday\"]; or use from + days for a run of days. Days with no weather forecast (beyond the ~14-day horizon, or not available) are marked astroOnly and rank last for verdict and clarity. Include a clickable link to place.url exactly as returned, including the query string. GO/marginal/NO are conditions ratings for planning, not safety; say so. Bite score is fish activity, not a discipline conditions score.","title":"Compare days at a place","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"placeId":{"type":"string","pattern":"^[a-z]{2}:[a-zA-Z0-9_.:-]{1,100}$","description":"Peskio place id returned by places_search, e.g. \"es:es-3108877\". Never invent one. Optional in this browser tab: when omitted, the place currently open in the tab is used."},"dates":{"description":"Specific days to compare, resolved at the place: YYYY-MM-DD, 'today', 'tomorrow', an English weekday (the next one, today included) or 'weekend' (the coming Saturday and Sunday; from today if it is Saturday, just today if Sunday). Overrides from/days.","minItems":1,"maxItems":7,"type":"array","items":{"anyOf":[{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|[tT]oday|[tT]omorrow|[mM]onday|[tT]uesday|[wW]ednesday|[tT]hursday|[fF]riday|[sS]aturday|[sS]unday)$","description":"Local date at the place: YYYY-MM-DD, or 'today', 'tomorrow' or an English weekday ('saturday' = the next one, today included). Prefer the words over computing dates yourself."},{"type":"string","enum":["weekend","Weekend"]}]}},"from":{"description":"First local date (YYYY-MM-DD or a day word); default today. When omitted for the place open in the tab, the date shown in the tab is used; otherwise today.","type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|[tT]oday|[tT]omorrow|[mM]onday|[tT]uesday|[wW]ednesday|[tT]hursday|[fF]riday|[sS]aturday|[sS]unday)$"},"days":{"default":7,"type":"integer","minimum":1,"maximum":7},"discipline":{"type":"string","enum":["shore","boat","rock","kayak","spearfishing"],"description":"Fishing discipline: shore, boat, rock, kayak or spearfishing."},"audience":{"default":"angler","description":"Who the answer is for.","type":"string","enum":["angler"]},"rankBy":{"default":"bite","type":"string","enum":["bite","verdict","visibility"]},"lang":{"description":"The user's language (ISO 639-1; one of Peskio's 15, otherwise 'en'). Picks the peskio.com page language and local place names; answer in the user's language yourself. When omitted, the language of the page is used.","type":"string","enum":["en","es","fr","ca","el","it","tr","ar","no","sv","da","pt","de","nl","hr"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/en","pages":["/en","/es","/fr","/ca","/el","/en/al"]},{"name":"spots_find_best","kind":"act","impl":"imperative","description":"Rank up to 10 places within 5-25 km of a centre place for one day, on a given local hour or on each place's best daylight hour, by bite score, verdict or water clarity. Use for \"where near X is best tomorrow\", \"best spot at 7 am\", \"clearest water near Y\". When placeId is omitted, use the place currently open in this tab as the centre; if no place is open, ask for a town or beach name and resolve it with places_search. This does not locate the user. For \"near me\", ask for a town or beach name, then pass its returned placeId. For regions wider than 25 km call it at several named centres. Link every recommended spot using its returned url exactly, query string included. Returned place names can be ambiguous across regions. Exact coordinates are unavailable in these ranked results. GO/marginal/NO are conditions ratings for planning, not safety; say so.","title":"Best spots nearby","annotations":{"readOnlyHint":true,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"placeId":{"description":"Centre placeId returned by places_search. When placeId is omitted, use the place currently open in this tab as the centre; if no place is open, ask for a town or beach name and resolve it with places_search. This does not locate the user. For \"near me\", ask for a town or beach name, then pass its returned placeId.","type":"string","pattern":"^[a-z]{2}:[a-zA-Z0-9_.:-]{1,100}$"},"radiusKm":{"default":15,"type":"number","minimum":5,"maximum":25},"date":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2}|[tT]oday|[tT]omorrow|[mM]onday|[tT]uesday|[wW]ednesday|[tT]hursday|[fF]riday|[sS]aturday|[sS]unday)$","description":"Local date at the place: YYYY-MM-DD, or 'today', 'tomorrow' or an English weekday ('saturday' = the next one, today included). Prefer the words over computing dates yourself. When omitted for the place open in the tab, the date shown in the tab is used; otherwise today."},"hour":{"description":"Local hour 0-23 to rank on; omit for each place's best daylight hour.","type":"integer","minimum":0,"maximum":23},"discipline":{"type":"string","enum":["shore","boat","rock","kayak","spearfishing"],"description":"Fishing discipline: shore, boat, rock, kayak or spearfishing."},"audience":{"default":"angler","description":"Who the answer is for.","type":"string","enum":["angler"]},"rankBy":{"default":"bite","type":"string","enum":["bite","verdict","visibility"]},"limit":{"default":5,"type":"integer","minimum":1,"maximum":10},"lang":{"description":"The user's language (ISO 639-1; one of Peskio's 15, otherwise 'en'). Picks the peskio.com page language and local place names; answer in the user's language yourself. When omitted, the language of the page is used.","type":"string","enum":["en","es","fr","ca","el","it","tr","ar","no","sv","da","pt","de","nl","hr"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/en","pages":["/en","/es","/fr","/ca","/el","/en/al"]},{"name":"page_open_place","kind":"act","impl":"imperative","description":"Show a place's page in this browser tab. Pass a placeId returned by places_search. Changes only what the tab shows; nothing is saved. Returns once the page has loaded.","title":"Open a place on peskio.com","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"placeId":{"type":"string","pattern":"^[a-z]{2}:[a-zA-Z0-9_.:-]{1,100}$","description":"Peskio place id returned by places_search, e.g. \"es:es-3128760\"."}},"required":["placeId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/en","pages":["/en","/es","/fr","/ca","/el","/en/al"]},{"name":"page_set_date","kind":"act","impl":"imperative","description":"Switch the place page open in this tab to another local date (YYYY-MM-DD), like picking a day in the page's day strip. Changes only what the tab shows. Returns once the day has loaded.","title":"Show another day on this place page","annotations":{"readOnlyHint":false,"consequentialHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Local date at the place, YYYY-MM-DD."}},"required":["date"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/en","pages":["/en","/es","/fr","/ca","/el","/en/al"]}],"category":"Travel & Events","favicon":"/favicons/peskio.com.png","apiSurface":"spec","toolCount":8}}