Det offentlige API til fly.gratis.dk. Alle endpoints returnerer JSON, er frit tilgængelige (ingen API-nøgle påkrævet), og understøtter CORS (Cross-Origin Resource Sharing) så API'et kan kaldes direkte fra andre websites via JavaScript.
/api/search
Find pareto-optimale flyruter fra en lufthavn til en eller flere destinationer.
| Felt | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
start | string | Ja | Afgangslufthavn (IATA-kode, fx "CPH") |
end | string | Ja | Destinations-lufthavn(e), komma-separeret (fx "STN,BCN,LHR") |
beam_width | integer | Nej (default: 100) | Søgebredde – højere = mere grundig søgning, langsommere. Område: 10–1,000,000. |
weights | object | Nej | Brugerdefinerede vægte (se afsnit 3). |
curl -X POST https://fly.gratis.dk/api/search \
-H "Content-Type: application/json" \
-d '{
"start": "CPH",
"end": "STN,BCN"
}'
{
"search_id": "abc123...",
"status": "success",
"start_airport": "CPH",
"search_params": {
"beam_width": 100
},
"weights": { ... },
"results": [
{
"total_price": 132.5,
"score": 45.2,
"breakdown": {
"cost": -74.2,
"duration": -12.0,
"arrivals": 0,
"timing": -1.0,
...
},
"entry_fees": 18.7,
"trip": {
"flights": [
{
"departure_airport": "CPH",
"arrival_airport": "STN",
"price": 67.0,
"departure_time": "07:15",
"arrival_time": "08:40",
"duration_min": 85,
...
}
]
}
}
]
}
/api/info
Returnerer metadata om tilgængelige lufthavne og scraping-status.
curl https://fly.gratis.dk/api/info
| Felt | Beskrivelse |
|---|---|
airports | Array af lufthavnsobjekter med code, name, country, lat, lon |
scraper_status | Status for hver scraper (om den har produceret data) |
last_updated | Hvornår data sidst blev opdateret |
/api/weights
Henter standard vægte og præferencer. Du kan også sende POST for at gemme dine egne præferencer (kræver login for persistens, ellers gemmes i localStorage).
| Nøgle | Beskrivelse | Vægt (default) |
|---|---|---|
cost | Flypris – højere vægt = billigere ruter prioriteres | 1.0 |
duration | Rejsetid – højere = kortere rejser prioriteres | 0.5 |
arrivals | Ankomsttidspunkt – straf for uønskede ankomsttider | 1.0 |
departures | Afgangstidspunkt – straf for uønskede afgangstider | 1.0 |
layovers | Mellemlandinger – straf per mellemlanding | 2.0 |
overnight | Overnatning undervejs – straf for at sove i lufthavn | 5.0 |
interest | Interessante stop – belønning for interessante mellemlandinger | 0.0 |
temperature | Temperatur – belønning for at komme til solen | 0.1 |
wind | Vind – straf for blæsende destinationer | 0.0 |
| HTTP Status | Betydning |
|---|---|
| 200 | Success – resultater i results array |
200 + error_code: "NO_ROUTES_FOUND" | Ingen ruter fundet for de givne parametre |
| 400 | Ugyldig request – tjek at start og end er korrekte IATA-koder |
| 429 | For mange requests – prøv igen om et øjeblik |
| 500 | Serverfejl – prøv igen senere |
Alle priser er i EUR. Ruter der involverer Storbritannien inkluderer et UK ETA-gebyr på 18.70€ i total_price. Gebyret er angivet separat i feltet entry_fees.
import requests
resp = requests.post(
"https://fly.gratis.dk/api/search",
json={"start": "CPH", "end": "BCN"}
)
data = resp.json()
for route in data["results"]:
print(f"{route['total_price']:.2f}€ – score: {route['score']:.2f}")
const resp = await fetch("https://fly.gratis.dk/api/search", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({start: "CPH", end: "BCN"})
});
const data = await resp.json();
console.log(data.results);
← Tilbage til fly.gratis.dk