API & MCP
Everything a person can do on Schengen 90/180 Day Counter, a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://hearthschengendays.usefulweb.site/api/v1/calculate– run Schengen 90/180 Day CounterGET https://hearthschengendays.usefulweb.site/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
Schengen 90/180 Day Counter
Enter your past and planned stays in the Schengen area. The counter applies the rolling 90/180-day rule of the Schengen Borders Code to every day of stay: how many days you have used on a date, whether any stay was too long, the last day you may stay, how long your next stay can be and when a full 90-day stay is possible again.
| Field | Type | Default | Description |
|---|---|---|---|
stays | table | [{"entry":"2026-06-01","exit":"2026-07-15","label":"Summer in Italy"}] | Stays in the Schengen area. One row per stay; the day of entry and the day of exit both count. Planned stays count too. |
checkDate (required) | date | "2026-11-14" | Check on (date of control or planned entry) |
plannedLength | integer | 90 | Length of your next stay (days). Finds the earliest entry date from which a stay this long fits the rule. |
Example request
EU manual example: 1 Jan 2024 plus 1 June to 20 September 2024, checked on 14 June
curl -X POST https://hearthschengendays.usefulweb.site/api/v1/calculate -H 'content-type: application/json' -d '{"stays":[{"entry":"2024-01-01","exit":"2024-01-01","label":"Day trip"},{"entry":"2024-06-01","exit":"2024-09-20","label":"Summer stay"}],"checkDate":"2024-06-14","plannedLength":90}'
Every result contains
inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.
MCP (Model Context Protocol)
- Streamable HTTP endpoint:
https://hearthschengendays.usefulweb.site/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
hearth_schengen_days - Local stdio connector:
node src/mcp-stdio.ts --tool=hearth-schengen-days
{
"mcpServers": {
"hearth-schengen-days": { "type": "http", "url": "https://hearthschengendays.usefulweb.site/mcp" }
}
}