Structured preliminary flight guidance, protected by an integration API key.
FlightClaim provides preliminary flight-compensation guidance and official self-claim next steps. Its deterministic assessment is limited to delayed direct flights departing its supported German-airport list. It is not a claims representative, airline database, legal adjudicator or guaranteed compensation calculator. Other airports, connections and other disruption types are outside this tool's supported assessment—not a conclusion that the traveler has no rights.
No end-user account or paid plan is required. An integration API key is required for tool calls. There is no claim submission, purchase, payment or AirHelp API action.
https://api.invokeforge.com
OpenAPI 3.1 specification · Health · Readiness
| Method | Path | Access |
|---|---|---|
| POST | /v1/flightclaim/assess_disruption | Integration key |
| POST | /v1/flightclaim/get_claim_options | Integration key |
| GET | /, /healthz, /readyz, /v1/openapi.json | Public metadata |
No eSIM, CreatorScout, SellThis, remote MCP, static project files or other tool endpoints are exposed here.
Configure Muse's API-key authentication to send the key in the X-API-Key header. This is OpenAPI type: apiKey, in: header; it is not OAuth or Bearer authentication. Receive/store the integration credential through a secure owner-approved channel.
X-API-Key: <secure integration credential> Content-Type: application/json
The placeholder above is NOT a real key. Never put the key in a query string, client-side website, source, screenshot, transcript or request log. No browser cookies are accepted. Missing/invalid keys return a safe 401. This is a server-to-server integration; cross-origin browser tool calls are not enabled. The public spec permits cross-origin discovery without credentials.
Both tools use the existing bounded structured FlightClaim schema below. Fields are optional; missing information is handled conservatively. Unknown extra fields are rejected. Do not send passenger names, email, flight/booking references, documents, free-text descriptions, payment data or arbitrary URLs. No locale field has been added.
| Field | Values / bounds | Meaning |
|---|---|---|
departure_airport | string; pattern ^[A-Z]{3}$ | Three-letter IATA airport code (uppercase). |
arrival_delay_minutes | integer; 0–1440 | Arrival delay at the final destination in minutes. |
category | short_haul | medium_haul | long_haul | unknown | Rough flight distance band used for the preliminary reference. |
journey | direct | connection | unknown | Whether the flight was a direct flight or a connection. Connections are outside the supported scope. |
disruption | delay | cancellation | denied_boarding | What actually happened on the flight. Cancellation and denied_boarding are outside_supported_scope in this RC. |
had_booking | yes | no | unknown | Whether the eligibility fact is true, false, or unknown. |
had_check_in | yes | no | unknown | Whether the eligibility fact is true, false, or unknown. |
cause | unknown | confirmed_not_extraordinary | disputed_or_extraordinary | Certainty about whether extraordinary circumstances apply. |
Synthetic examples generated from the same production handlers and validated against the published schemas. Values are illustrative, not a real traveler's claim.
POST /v1/flightclaim/assess_disruption
{
"departure_airport": "FRA",
"arrival_delay_minutes": 240,
"category": "short_haul",
"journey": "direct",
"disruption": "delay",
"had_booking": "yes",
"had_check_in": "yes",
"cause": "confirmed_not_extraordinary"
}{
"outcome": "possible_eligibility",
"explanation": "Preliminary: MAY be entitled to EU261 compensation (direct flight, German-airport departure, ≥3h delay, no extraordinary circumstances, valid booking, on-time check-in). Airline bears burden of proof.",
"missing_facts": [],
"next_steps": [
"Read official EU guidance, then contact the airline directly. Consult the guidance for escalation to an enforcement body.",
"Gather booking confirmation, boarding pass and any airline communication about the disruption."
],
"jurisdiction_note": "Departure airport FRA (Frankfurt) is in Germany; within EU261 perimeter for German-airport departures.",
"source": {
"id": "youreurope-air-passenger-rights",
"title": "Air passenger rights — Your Europe (europa.eu)",
"url": "https://europa.eu/youreurope/citizens/travel/passenger-rights/air/index_en.htm",
"last_checked": "2026-09-29",
"fetched_at": "2026-09-29"
}
}POST /v1/flightclaim/get_claim_options
{
"departure_airport": "FRA"
}{
"options": [
{
"id": "official-your-europe",
"label": "Official EU air passenger rights (Your Europe)",
"kind": "official_self_claim",
"url": "https://europa.eu/youreurope/citizens/travel/passenger-rights/air/index_en.htm",
"note": "Authoritative reference for departures from FRA. Filing directly with the airline and the national enforcement body is free."
},
{
"id": "commercial-referral",
"label": "Optional commercial claim assistance",
"kind": "commercial_referral",
"url": "https://www.airhelp.com/en-int/?utm_medium=affiliate&utm_source=pap&utm_campaign=aff-flightclaim&utm_content=&a_aid=flightclaim&a_bid=7f1ca9fa&chan=muse",
"note": "AirHelp affiliate approved; 15% and user-clicked AI referrals confirmed. Issued link captured; owner activation remains required."
}
],
"commercial_referral": {
"status": "available",
"reason": "The configured commercial referral host is on the allowlist and owner-authorized.",
"authorized": true
},
"disclosure": {
"affiliate_commission": "AirHelp affiliate approved; 15% and user-clicked AI referrals confirmed. Issued link captured; owner activation remains required.",
"commercial_referral_authorized": true,
"commercial_referral_url_configured": true,
"airhelp_terms_verified": false
},
"source": {
"id": "youreurope-air-passenger-rights",
"title": "Air passenger rights — Your Europe (europa.eu)",
"url": "https://europa.eu/youreurope/citizens/travel/passenger-rights/air/index_en.htm",
"last_checked": "2026-09-29",
"fetched_at": "2026-09-29"
}
}The partner URL in the example is plain text, not an automatically followed link. Clients must never prefetch or visit it as an integration check.
JSON request body maximum: 16 KiB. Content type: application/json. No compressed request bodies or query parameters. Body read deadline: 10 seconds. Cloudflare rate limits are configured at 120 requests/minute for admission and 60 requests/minute per tool, shared by this integration in each Cloudflare location. Limits are eventually consistent and location-local, not a global accounting guarantee or SLA. A 429 includes Retry-After: 60.
400 invalid/extra input; 401 missing/invalid API key; 403 disallowed origin/cookies/non-HTTPS; 404 unknown route; 405 wrong method; 408 body deadline; 413 oversized body; 415 media type; 429 rate limit; 503 configuration/runtime unavailable. Errors do not echo supplied input or secrets. See the spec for exact response schemas.
{
"error": {
"code": "unauthorized",
"message": "A valid X-API-Key integration header is required."
}
}The AirHelp affiliate account is approved. AirHelp confirmed normal user-clicked AI-origin referrals and a 15% affiliate commission rate for InvokeForge, subject to program conditions. This is not a quoted traveler fee. This does not imply AirHelp endorsement, automatic claims, guaranteed compensation or a fixed payout per passenger.
When owner-authorized routing is enabled, get_claim_options preserves the official self-claim route and may return the exact issued EN-INT fallback with the Muse ad-channel marker. It adds no traveler data. The API never fetches, prefetches, navigates to or submits anything to AirHelp. The user chooses whether to click a normal referral link. Client renderers must preserve the issued destination, show the commission disclosure, avoid automatic previews/clicks and follow applicable link-placement requirements.
The modular locale router is available for a future verified Muse context adapter. The current public schema has no locale input: IP, airport and browser headers are not used to infer one; EN-INT is the fallback. airhelp_terms_verified:false is not a denial of account approval; the API does not certify every operational/legal term. Inspect the explicit referral status and authorization fields.
The application uses only the structured facts sent for this request. It has no customer database, saved claims, payment information, image downloads or application request-body/header logging. Rate-limit counters use fixed integration/route keys rather than personal identifiers. Cloudflare and the calling AI/platform may process network metadata or retain information under their own settings/policies; this is not a promise of zero retention across all systems.
See Privacy and Terms. For access/support: InvokeForge support or apptreestudios@gmail.com. Do not email API keys or unnecessary booking/personal information.