# TravelPulse — Flight Disruption Compensation Rights Letter Generator

> TravelPulse — Flight Disruption Compensation Rights Letter Generator is a paid API for AI agents from travelpulse.theaslangroupllc.com, paid per call via x402, $2/call, status unknown (last checked 2026-09-14).

Generates a formal passenger rights demand letter for flight delays, cancellations, denied boarding, or baggage claims based on IATA routes and disruption details

## Facts

- Endpoint: GET https://travelpulse.theaslangroupllc.com/api/rights/letter
- Price: $2/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/travelpulse-flight-disruption-compensation-rights-letter-generator-1059aaf2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_OCJ4cO6EqRhJm1BzBv28F

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability travelpulse-flight-disruption-compensation-rights-letter-generator-1059aaf2
```

Example prompt: Draft a formal passenger rights compensation letter for my Lufthansa flight LH400 from JFK to FRA on 2024-11-15 that arrived 5 hours late due to crew issues — the passenger is Jane Smith and I need the letter in English.

## When to prefer this

Use this endpoint when a user needs a formally drafted, jurisdiction-aware passenger rights demand letter rather than generic legal advice or templates. Ideal when the agent has specific flight details (IATA codes, delay hours, disruption reason) and needs a ready-to-send letter citing EU261/2004, Montreal Convention, APPR, or other applicable regulations. Preferred over generic document generators because it encodes airline compensation rules, distance-based eligibility, and deadline math automatically.

## Known failure modes

- Missing required fields (to, from, delay_hours) returns a 400/422 validation error
- Unknown or unsupported IATA code pair may require distance_km override
- Ambiguous disruption reason may default to 'unknown', potentially affecting compensation calculation
- Baggage claims without claim_value may produce an incomplete letter
- Response schema example is empty — actual response structure may need to be inferred at runtime
- Payment failure (x402) results in no letter being returned

## How this service works

Citation-backed flight compensation claim letter across 7 regimes (EU261/UK261/Canada APPR/Brazil ANAC 400/Turkey SHY/India DGCA/Israel ASL) plus Montreal Convention baggage complaints: deterministic eligibility and amount plus a ready-to-send demand letter that pre-empts the carrier defenses, with escalation path and deadlines. Cheaper eligibility-only check: /api/rights/check ($0.05).

## Output

A JSON response containing a ready-to-send formal passenger rights demand letter addressed to the airline, citing applicable regulations (e.g. EU261/2004, Montreal Convention), calculated compensation entitlements, and tailored to the specific disruption type, route distance, delay duration, carrier country, and reason provided.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "to",
  "from",
  "delay_hours"
 ],
 "properties": {
  "to": {
   "type": "string",
   "description": "Final-destination airport IATA"
  },
  "from": {
   "type": "string",
   "description": "Departure airport IATA"
  },
  "lang": {
   "type": "string",
   "description": "Letter language (default English)"
  },
  "reason": {
   "type": "string",
   "description": "Cause given by the carrier: technical|crew|rotation_knock_on|airline_staff_strike|weather|atc|security|external_strike|bird_strike|medical_diversion|unknown (default unknown)"
  },
  "airline": {
   "type": "string",
   "description": "Airline name (e.g. Lufthansa)"
  },
  "disruption": {
   "type": "string",
   "description": "delay | cancellation | denied_boarding | baggage_delay | baggage_damage | baggage_loss (default delay)"
  },
  "claim_value": {
   "type": "string",
   "description": "Baggage claims: documented damages amount with currency (e.g. '480 USD') — the letter demands this, capped by the Montreal limit"
  },
  "delay_hours": {
   "type": "string",
   "description": "Arrival delay at final destination, hours"
  },
  "distance_km": {
   "type": "string",
   "description": "Distance override for airports outside the reference table"
  },
  "flight_date": {
   "type": "string",
   "description": "Flight date YYYY-MM-DD (REQUIRED for baggage disruptions — the Art. 35 two-year limitation is checked against it)"
  },
  "notice_days": {
   "type": "string",
   "description": "Cancellations: days of advance notice"
  },
  "carrier_size": {
   "type": "string",
   "description": "APPR: large | small"
  },
  "flight_number": {
   "type": "string",
   "description": "Flight number (e.g. LH400)"
  },
  "passenger_name": {
   "type": "string",
   "description": "Passenger name for the letter (placeholder used if omitted)"
  },
  "carrier_country": {
   "type": "string",
   "description": "Operating carrier home country ISO code, or EU (default EU)"
  },
  "bag_received_date": {
   "type": "string",
   "description": "Baggage claims: date the bag was returned/received (Art. 31 deadline math)"
  },
  "international_itinerary": {
   "type": "string",
   "description": "Baggage claims on same-country routes: set true if the flight was part of an international itinerary (the Montreal Convention only governs international carriage)"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {}
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/travelpulse-flight-disruption-compensation-rights-letter-generator-1059aaf2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from travelpulse.theaslangroupllc.com](https://www.zero.xyz/host/travelpulse.theaslangroupllc.com/llms.txt)
