Briefing PDF
Download a complete preflight briefing as a PDF — a printable dispatch packet for crew handoff or archival. The report combines departure and arrival weather, NOTAMs, advisories, PIREPs, and an AI-generated route summary for the selected ICAO pair.
Unlike every other SkyLink endpoint, this operation returns application/pdf bytes — not JSON. Save the response body directly to disk or stream it to the client.
The route narrative is generated by IBM Granite enterprise models — the same infrastructure backing Flight Briefing. Contact SkyLink for enterprise deployment options beyond the standard RapidAPI tiers.
Request
Requirements
x-api-key on every request (direct subscription). Learn more →https://data.skylinkapi.com/v3.1/briefing/pdf| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
departure_icao | string | Yes | - | Departure ICAO code, e.g. EGLL |
arrival_icao | string | Yes | - | Arrival ICAO code, e.g. KJFK |
flight_number | string | No | - | Optional label in the PDF header, e.g. BA117 |
Response
On success, the API responds with PDF bytes.
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="briefing_EGLL_KJFK.pdf"The PDF typically includes departure and arrival METAR/TAF sections, active NOTAM summaries, relevant PIREPs and advisories, and AI-generated route notes.
Check Content-Type before saving. If the server returns JSON instead of application/pdf, parse the body as an error response — do not write it to a .pdf file.
Client types
"""Briefing PDF request model for /briefing/pdf."""from __future__ import annotationsfrom dataclasses import dataclass@dataclassclass BriefingPdfRequest: departure_icao: str arrival_icao: str flight_number: str | None = None@dataclassclass BriefingPdfDownloadResult: content_type: str file_path: str bytes: intIntegration
Download the PDF with request timeouts and write bytes to a local file.
The example demonstrates TypeScript (Node.js Buffer), Python (binary write), and curl (--output briefing.pdf).
import osfrom pathlib import Pathimport requestsBASE = "https://data.skylinkapi.com/v3.1"HEADERS = { "x-api-key": os.getenv("SKYLINK_API_KEY", "YOUR_API_KEY")}def download_briefing_pdf(departure_icao: str, arrival_icao: str, *, output_path: str = "briefing.pdf") -> Path: """Download a generated briefing PDF and save it to disk.""" r = requests.get( f"{BASE}/briefing/pdf", headers=HEADERS, params={"departure_icao": departure_icao, "arrival_icao": arrival_icao}, timeout=(10, 30), ) r.raise_for_status() if "application/pdf" not in r.headers.get("Content-Type", ""): raise RuntimeError("Expected PDF response") path = Path(output_path) path.write_bytes(r.content) return pathif __name__ == "__main__": path = download_briefing_pdf("KJFK", "KLAX") print(f"Saved briefing PDF to {path.resolve()} ({path.stat().st_size:,} bytes)")Implementation notes
Binary handling. Branch on Content-Type: application/pdf → save bytes; application/json → parse error.
User-triggered downloads. In web clients, start this request from an explicit user action (button click) to align with browser download behavior.
Caching. Generated PDFs are route/time-specific. Cache keys should include both ICAO codes and generation timestamp.
Error responses
For shared platform errors, see Error Handling. Endpoint-specific:
422 - missing or invalid ICAO input
{
"detail": [
{
"type": "missing",
"loc": ["query", "departure_icao"],
"msg": "Field required"
}
]
}Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Query Parameters
Departure airport ICAO code (e.g. 'EGLL')
Arrival airport ICAO code (e.g. 'KJFK')
Optional flight number for the header (e.g. 'BA117')
Response Body
application/json
curl -X GET "https://data.skylinkapi.com/v3.1/briefing/pdf?departure_icao=string&arrival_icao=string"null{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}Integration guides
| Guide | Covers |
|---|---|
| Flight status | Live status, delays, departure board |
| Schedules | Boards, delay counts, arr/dep dashboard |
| Distance | Great-circle distance, route ranking |
| Flight briefing | AI summary and NOTAM highlights |
| Error handling | 404, empty boards, briefing retries |
| Caching & monitoring | TTLs and latency notes |
Related: Flight Briefing · METAR · NOTAMs