{
  "openapi": "3.0.1",
  "info": {
    "title": "SiteVerdict — UK261/EU261 Flight Compensation Checker",
    "description": "Cited UK261 (£220/£350/£520) or EU261 (€250/€400/€600) estimate for a delayed, cancelled or overbooked flight IF the Regulation's conditions are met: reasons, certainty, time limit, ADR route, claim pack. Booking references are never stored. Not legal advice. Your API key or manual times.",
    "version": "1.1",
    "x-build-id": "Zis9842IRcfK4jYrG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/siteverdict~siteverdict-flight-compensation/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-siteverdict-siteverdict-flight-compensation",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/siteverdict~siteverdict-flight-compensation/runs": {
      "post": {
        "operationId": "runs-sync-siteverdict-siteverdict-flight-compensation",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/siteverdict~siteverdict-flight-compensation/run-sync": {
      "post": {
        "operationId": "run-sync-siteverdict-siteverdict-flight-compensation",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "claims"
        ],
        "properties": {
          "claims": {
            "title": "Flights / claims to check",
            "type": "array",
            "description": "One object per flight. WITH a provider key: give flightNumber + date (local departure date, YYYY-MM-DD) and the Actor looks up scheduled/actual times. WITHOUT a key (provider = none): give departureAirport + arrivalAirport (IATA e.g. LHR or ICAO e.g. EGLL), operatingCarrier (e.g. BA, BAW, EZY) and either arrivalDelayMinutes or scheduledArrival + actualArrival (local time at the arrival airport, e.g. 2026-09-14T13:05). Optional: disruption (auto|delay|cancellation|denied_boarding|diversion), cancellationNoticeDays, rerouteOffered, rerouteDepartedMinutesEarly, rerouteArrivalDelayMinutes, deniedBoardingVoluntary, deniedBoardingReason (overbooking|operational|health|safety|security|travel_documents), airlineReason (weather|atc_restriction|technical_fault|strike_own_staff|strike_third_party|crew_shortage|bird_strike|...), journeyOrigin + finalDestination + finalArrivalDelayMinutes (single booking with connections), carrierLicence (UK|EU|EEA_CH|OTHER), passengers, jurisdiction (england-wales|scotland|northern-ireland|eu-de|eu-fr|eu-ie|eu-es|eu-other), checkedInOnTime, freeOrNonPublicFare, alreadyCompensatedElsewhere, reference (optional and never stored: every output row is labelled claim-<n>, the claim's position in this list; a claim whose reference looks like a booking reference, passport number or e-mail address is refused). 1.1.0: singleBooking (true = one booking, false = self-transfer), marketingCarrier, arrivalTimeZone (IANA, e.g. Europe/London), actualArrivalBasis (doors_open|gate|runway), adrBody (aviationadr|cedr|pact). See the README for every field. Output is an ESTIMATE of the statutory band if conditions are met — not a determination of entitlement."
          },
          "provider": {
            "title": "Flight-data provider (your own key)",
            "enum": [
              "none",
              "aerodatabox",
              "aeroapi",
              "aviationstack",
              "oag",
              "sample"
            ],
            "type": "string",
            "description": "Licensed flight-status API to look flights up with YOUR key. 'none' = manual times only (no key needed). 'sample' = built-in synthetic demo flights (BA9901 2026-09-14, U29902 2026-09-20, FR9903 2026-09-21, LH9904 2026-09-22), free. We never scrape airline or flight-tracker websites.",
            "default": "none"
          },
          "apiKey": {
            "title": "Provider API key",
            "type": "string",
            "description": "Your own key for the selected provider (RapidAPI key, API.Market key, AeroDataBox key, FlightAware x-apikey, Aviationstack access_key or OAG subscription key). Stored encrypted as an Apify secret, sent only to that provider, never logged or written to the output. You pay the provider directly under its own terms."
          },
          "aerodataboxGateway": {
            "title": "AeroDataBox gateway",
            "enum": [
              "rapidapi",
              "apimarket",
              "direct"
            ],
            "type": "string",
            "description": "Where your AeroDataBox key comes from.",
            "default": "rapidapi"
          },
          "maxClaims": {
            "title": "Max claims per run",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Safety cap (hard limit 500). The run also stops when your maximum total charge is reached.",
            "default": 100
          },
          "concurrency": {
            "title": "Parallel provider lookups",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "1 to 4. Keep low to respect the rate limit of your provider plan.",
            "default": 2
          },
          "claimPack": {
            "title": "Write a claim pack (letter templates + CSV)",
            "type": "boolean",
            "description": "Also write CLAIM-PACK.md (one letter template per claim to the operating airline, personal details left as [brackets]) and CLAIMS.csv (one row per claim) to the key-value store. Included in the same event — no extra charge.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}