Save up to 17% with yearly billing

See pricing

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

Auth
x-api-key on every request (direct subscription). Learn more →
ICAO
4-letter airport code (e.g. KJFK). US fields often use a leading K. Learn more →
GEThttps://data.skylinkapi.com/v3.1/briefing/pdf
ParameterTypeRequiredDefaultDescription
departure_icaostringYes-Departure ICAO code, e.g. EGLL
arrival_icaostringYes-Arrival ICAO code, e.g. KJFK
flight_numberstringNo-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: int

Integration

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"
    }
  ]
}
GET
/briefing/pdf
x-api-key<token>

Your SkyLink licence key, for keys bought direct from skylinkapi.com.

In: header

Query Parameters

departure_icao*Departure Icao

Departure airport ICAO code (e.g. 'EGLL')

arrival_icao*Arrival Icao

Arrival airport ICAO code (e.g. 'KJFK')

flight_number?|

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

GuideCovers
Flight statusLive status, delays, departure board
SchedulesBoards, delay counts, arr/dep dashboard
DistanceGreat-circle distance, route ranking
Flight briefingAI summary and NOTAM highlights
Error handling404, empty boards, briefing retries
Caching & monitoringTTLs and latency notes

Related: Flight Briefing · METAR · NOTAMs