Sefer İptal publishes independent information about supported İDO ferry services in Turkey. Use this guide to find a route, request sailing results, interpret the fields and cite the source. The data service is public and requires no account.
Fetch results
Start with the route catalogue. Search with a short port or route name; Turkish names can be searched without accents. The response includes exact route_id values and source links. Date is optional here and defaults to today in Europe/Istanbul.
curl --get 'https://seferiptal.com/results/' \
--data-urlencode 'query=Bandirma' \
--data-urlencode 'date=tomorrow' \
--data-urlencode 'format=json'
Then request one route and date. Use an ID returned by the catalogue; do not guess route IDs. The JSON response is the same structured result object exposed as MCP structuredContent (without a JSON-RPC envelope). Omit format=json for a readable HTML page.
curl --get 'https://seferiptal.com/results/' \
--data-urlencode 'route_id=500114-P>500205-P' \
--data-urlencode 'date=tomorrow' \
--data-urlencode 'format=json'
date accepts today, tomorrow, or a real calendar date in YYYY-MM-DD format. Relative dates are resolved in Europe/Istanbul. Sailings are searched for one calendar day per request. Results contain at most 50 rows; when next_offset is present, request that offset to continue. Catalogue queries also accept offset and return next_offset when more routes match.
HTTP clients and failures
Use a descriptive User-Agent identifying your application when making HTTP requests. For example, Python urllib requests can set a User-Agent header such as SeferIptalExampleClient/1.0. Do not impersonate search crawlers. A 403, challenge page, timeout, or browsing-tool access error is an access failure, not evidence of no sailings. Report the failure and retry later; do not invent a result.
Connect with MCP
For MCP-compatible clients, connect to https://seferiptal.com/mcp with no authentication. Use the official MCP client transport, which performs protocol initialization and tool discovery.
list_ferry_routes: optionalquery,limit(1–50, default 20), andoffset(0–1000). Find exact route IDs before querying sailings.search_ferry_sailings: requiredstart_dateandend_date; optionalroute_id,status,limit, andoffset. Dates areYYYY-MM-DDin Europe/Istanbul. A range can span at most seven days.get_ferry_sailing: requiredroute_id,date, andsailing_keycopied from a sailing search result. Use this to recheck one specific departure.
The MCP search window is limited to dates from 30 days ago through six days ahead, inclusive. The public /results/ page uses the same date window. Invalid or unavailable requests return an error; do not silently substitute another date.
Interpret results carefully
statusandstatus_meaningdescribe the latest observed operator record.cancelledmeans İDO reported a cancellation.scheduledmeans listed at the check time; it does not guarantee operation.completedmeans İDO reported completion.assumed_sailedis an assumption after departure, not a confirmed completion.unknownis unconfirmed.current_predictionis a model estimate for a scheduled sailing when a current estimate is available. It is a probability from 0 to 1, not a percentage string: multiply by 100 to present percent. Display values below 1% as <1% and above 99% as >99% to avoid implying certainty through rounding. Label it estimated cancellation risk, explain that the model is experimental, and show itscalculated_attimestamp when provided. A percentage does not mean a cancellation was reported.recorded_predictionis the estimate stored before departure.retrospective_predictionwas calculated after departure. Neither should be described as a current forecast.- For the route catalogue, check
reference_staleandchecked_at. For sailings, check top-levelstale,historical,checked_at,retrieved_at, each sailing'sstale,historical, andchecked_at, pluswarning_codes. Prediction times can differ from observation times. If a value is null, missing, stale, or unavailable, say so; do not infer zero risk, no service, or no cancellations. - Departure and arrival times include provenance fields such as
operator_booking,operator_listing,route_default_estimate, orunknown. Ifroute_default_estimateappears in an older record, label that time an estimate; do not treat it as an operator-published time. Missing or unknown times remain unknown. UseEurope/Istanbulfor displayed dates and times; JSON timestamps retain their explicit ISO time zone.
The service covers supported İDO ferry services in Turkey, not every Turkish operator or worldwide routes. Model estimates are experimental; accuracy using future weather forecasts has not been validated. Verify travel directly with İDO.
Cite the result
Include the route, travel date, status, check time and any prediction calculation time. Cite the sailing's source_url and link the matching readable result page when available. The source_url points to Sefer İptal’s tracker. Link the data sources and attribution page when explaining methods or weather inputs. Do not present historical archive statistics as a live estimate.
A concise report could say: “Sefer İptal listed the Yenikapı–Bandırma sailing (source: SOURCE_LINK) as scheduled when checked at CHECK_TIME (İstanbul time). Its experimental model estimate was PERCENT, calculated at CALCULATED_AT. This is a risk estimate, not an İDO cancellation notice; verify with İDO.” Replace every placeholder from the actual response, and omit a prediction claim when no current prediction is returned.
Other public references
- Live result pages — route discovery and date-specific HTML or JSON results.
- MCP endpoint — connect with an MCP client; the endpoint is a protocol service, not a browser page.
- Public page index — optional directory of published articles and guides. It is not a data feed or a guarantee of indexing.
- Turkish live tracker and English live tracker.