# Erste Schritte

Für den FREE Trial bewerben oder abonnieren – Zugangsdaten, Schlüsselsicherheit, öffentliche Endpoints und Ihre erste Anfrage an die SkyLink API.



Die SkyLink API wird über zwei Kanäle vertrieben: **direkt bei uns** (Abrechnung über unser eigenes Portal) und über den **RapidAPI-Marktplatz**. Beide liefern dieselben Daten — sie unterscheiden sich nur in der Basis-URL und im Authentifizierungs-Header. Sie schließen ein Abonnement ab (oder bewerben sich für eine Testphase), kopieren Ihren Schlüssel und senden HTTPS-Anfragen; jede Antwort ist JSON.

## Wählen Sie Ihren Kanal [#choose-your-channel]

Wählen Sie den Kanal, über den Sie gekauft haben. Jede Basis-URL, jeder Header und jedes Codebeispiel in dieser Dokumentation richtet sich nach diesem Schalter, und Ihre Auswahl wird seitenübergreifend gespeichert.

<ApiProviderToggle />

|                   | Direkte API                                                                                 | RapidAPI                                                                                         |
| ----------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| Basis-URL         | `https://data.skylinkapi.com&#x60; &#x2A;*+ `/v3.1`, `/v3` oder `/v2`**                     | `https://skylink-api.p.rapidapi.com` (ohne Versionssegment)                                      |
| Authentifizierung | `x-api-key`                                                                                 | `X-RapidAPI-Key` **und** `X-RapidAPI-Host`                                                       |
| Bezugsquelle      | [unser Checkout](https://buy.polar.sh/polar_cl_ELkXgbbG4kqTfypfbxTmPpoz8cb4sHCVgvZOo1zvPmk) | [RapidAPI-Eintrag](https://rapidapi.com/skylink-api-skylink-api-default/api/skylink-api/pricing) |
| Abrechnung        | Polar (Merchant of Record)                                                                  | RapidAPI                                                                                         |

<a id="step-1--subscribe-and-get-your-credentials" />

## Schritt 1 — Abonnieren und Zugangsdaten erhalten [#step-1--subscribe-and-get-your-credentials]

### FREE Trial [#free-trial]

Der **FREE Trial** (1.000 Anfragen/Monat) ist **nicht** per Self-Service erhältlich. [Bewerben Sie sich für den FREE Trial der SkyLink API](https://skylinkapi.com/apply/) — Bewerbungen werden wöchentlich geprüft; die meisten Teams erhalten innerhalb von 3–5 Werktagen eine Rückmeldung.

### Kostenpflichtige Tarife [#paid-plans]

<ForProvider only="direct">
  1. Öffnen Sie den [SkyLink API Checkout](https://buy.polar.sh/polar_cl_ELkXgbbG4kqTfypfbxTmPpoz8cb4sHCVgvZOo1zvPmk) und wählen Sie Basic oder Pro, mit monatlicher oder jährlicher Abrechnung ([Tarife vergleichen](/docs/rate-limits#plans)).
  2. Nach dem Checkout wird Ihr **Lizenzschlüssel** auf der Bestätigungsseite angezeigt und Ihnen per E-Mail zugesandt; er ist jederzeit in Ihrem [Polar-Kundenportal](https://polar.sh/skylink-api/portal/) verfügbar.

  Jede authentifizierte Anfrage enthält einen Header:

  | Header      | Wert                |
  | ----------- | ------------------- |
  | `x-api-key` | Ihr Lizenzschlüssel |

  Der Header ist die einzige akzeptierte Form — der Schlüssel wird nie aus einem Query-Parameter gelesen. Ein fehlender oder unbekannter Schlüssel liefert `401`.

  **Die Version steht im Pfad.** `https://data.skylinkapi.com/v3.1/...` für v3.1, `/v3/...` und `/v2/...` für die älteren Generationen.
</ForProvider>

<ForProvider only="rapidapi">
  1. Öffnen Sie [RapidAPI → SkyLink API](https://rapidapi.com/skylink-api-skylink-api-default/api/skylink-api/pricing) und abonnieren Sie Basic oder Pro ([Tarife vergleichen](/docs/rate-limits#plans)).
  2. Wechseln Sie nach dem Abonnieren zum Tab **Endpoints** und kopieren Sie Ihren `X-RapidAPI-Key` aus dem Code-Snippet auf der rechten Seite.

  Jede authentifizierte Anfrage erfordert **beide** dieser Header:

  | Header            | Wert                                                    |
  | ----------------- | ------------------------------------------------------- |
  | `X-RapidAPI-Key`  | Ihr Abonnementschlüssel aus dem RapidAPI-Dashboard      |
  | `X-RapidAPI-Host` | `skylink-api.p.rapidapi.com` (fest — immer dieser Wert) |

  Fehlt einer der beiden Header, liefert das RapidAPI-Gateway `401`, bevor die Anfrage SkyLink erreicht.

  **Kein Versionssegment.** Der Gateway-Host bedient jede Generation über den reinen Pfad — `https://skylink-api.p.rapidapi.com/weather/metar/KJFK`.
</ForProvider>

<a id="key-security" />

### Schlüsselsicherheit [#key-security]

* **Betten Sie den Schlüssel niemals** in mobile Apps, Browser-JavaScript oder öffentliche Repositories ein — er gewährt vollen API-Zugriff zulasten Ihres abgerechneten Kontingents.
* **Speichern Sie ihn in einer Umgebungsvariablen** (zum Beispiel `SKYLINK_API_KEY`) und injizieren Sie ihn zur Laufzeit serverseitig.
* **Rotieren Sie den Schlüssel** über Ihr Abrechnungs-Dashboard, falls er jemals offengelegt wird.

### Öffentliche Endpoints (kein Schlüssel erforderlich) [#public-endpoints-no-key-required]

OpenAPI-Spezifikationen und der Upstream-Health-Check werden von `api.skylinkapi.com` ausgeliefert — getrennt sowohl vom Daten-Host als auch vom RapidAPI-Proxy — und erfordern keinen Schlüssel:

| Endpoint                                           | Beschreibung               |
| -------------------------------------------------- | -------------------------- |
| `GET https://api.skylinkapi.com/health`            | Upstream-Health-Check      |
| `GET https://api.skylinkapi.com/v2/openapi.json`   | OpenAPI-Spezifikation v2   |
| `GET https://api.skylinkapi.com/v3/openapi.json`   | OpenAPI-Spezifikation v3   |
| `GET https://api.skylinkapi.com/v3.1/openapi.json` | OpenAPI-Spezifikation v3.1 |

**Wichtig:** Ein Aufruf von `/health` oder `/` auf einem Daten-Host liefert `404`. Verwenden Sie `api.skylinkapi.com` ausschließlich für nicht authentifizierte Spezifikationen und Health-Checks.

<a id="step-2--make-your-first-request" />

## Schritt 2 — Ihre erste Anfrage senden [#step-2--make-your-first-request]

<DocApiPath method="GET" path="/weather/metar/{icao}" />

Beispiel: `?parsed=true` auf `/weather/metar/KJFK`.

Header: [Schritt 1](#step-1--subscribe-and-get-your-credentials).

<DocExample id="getting-started/first-request" />

## Offizielle SDKs [#official-sdks]

Sie bevorzugen einen typisierten Client statt reinem HTTP? Beide offiziellen SDKs sind als `skylink-api` veröffentlicht, kapseln dieselben Endpoints, lesen Ihren Schlüssel aus der Umgebung und liefern typisierte Modelle zurück.

| Sprache    | Registry                                                         | Installation              |
| ---------- | ---------------------------------------------------------------- | ------------------------- |
| Python     | [PyPI → `skylink-api`](https://pypi.org/project/skylink-api/)    | `pip install skylink-api` |
| TypeScript | [npm → `skylink-api`](https://www.npmjs.com/package/skylink-api) | `npm install skylink-api` |

```python
from skylink_api import SkyLink

with SkyLink() as sky:
    metar = sky.weather.metar("KJFK")
    traffic = sky.adsb.aircraft(lat=51.47, lon=-0.46, radius=75)
    status = sky.flight_status("BA117")
```

```typescript
import { SkyLink } from "skylink-api";

// Direct channel — omit `provider` to use RapidAPI, the SDK's default.
const sky = new SkyLink({ provider: "direct", apiKey: process.env.SKYLINK_API_KEY });

const metar = await sky.weather.metar("KJFK", { parsed: true });
const flight = await sky.flightStatus("BA117");
```

Beide Kanäle bieten exakt dieselbe Methodenoberfläche — `provider` bestimmt nur die Basis-URL und welche Authentifizierungs-Header gesendet werden.

Der Python-Client erfordert Python 3.10+ und hängt von `httpx` und `pydantic` v2 ab. Der TypeScript-Client erfordert Node 20+ (oder eine beliebige Laufzeitumgebung mit globalem `fetch` — Bun, Deno, Cloudflare Workers, Vercel Edge), bringt keinerlei Laufzeitabhängigkeiten mit und verfügt über integrierte Wiederholungsversuche und Kontingent-Tracking. Der TypeScript-Client liest `RAPIDAPI_KEY` oder `SKYLINK_API_KEY` aus der Umgebung, wenn kein Schlüssel explizit übergeben wird.

## Was Sie zurückerhalten [#what-you-get-back]

Eine erfolgreiche [METAR](https://en.wikipedia.org/wiki/METAR)-Antwort mit `parsed=true` sieht so aus:

```json
{
  "raw": "METAR KJFK 062251Z 24017G23KT 10SM FEW060 FEW075 SCT110 BKN180 BKN250 28/17 A2974 RMK AO2 SLP072 T02830167 $",
  "icao": "KJFK",
  "airport_name": "John F. Kennedy International Airport",
  "timestamp": "2026-06-06T23:09:37Z",
  "parsed": {
    "time": "2026-06-07T00:51:00+02:00",
    "wind": { "direction": 240, "speed": 17, "gust": 23, "variable": [] },
    "visibility": { "value": 10, "repr": "10" },
    "flight_rules": "VFR",
    "temperature": 28,
    "dewpoint": 17,
    "altimeter": 29.74
  }
}
```

`parsed.flight_rules` ist die aus Wolkenuntergrenze und Sichtweite abgeleitete **Flugwetterkategorie**: `VFR` (Sichtflugregeln), `MVFR` (marginales VFR), `IFR` (Instrumentenflugregeln) oder `LIFR` (niedriges IFR). Vollständige Feldtabellen und Regeln zur Nullbarkeit: [METAR-Referenz](/docs/v31/weather-metar#parsed-parsedtrue).

Bei `parsed=false` (oder ohne Angabe) fehlt der Schlüssel `parsed` — Sie erhalten nur `raw`, `icao`, `airport_name` und `timestamp`.

## Nächste Schritte [#next-steps]

* [v3.1 API-Referenz](/docs/v31/overview&#x29; — vollständiger Endpoint-Index &#x2A;(hier beginnen)*
* [Fehlerbehandlung](/docs/errors) — Fehlerformate, Statuscodes, Regeln für Wiederholungsversuche
* [Rate Limits](/docs/rate-limits) — Tarife, Kontingent-Header, Pfadstufen für historische [ADS-B](https://www.faa.gov/air_traffic/technology/adsb)-Daten
* [v3 API-Referenz](/docs/v3/overview) — stabile Version
* [v2 API-Referenz](/docs/v2/overview) — Legacy-Version
* [Python SDK](https://pypi.org/project/skylink-api/) · [TypeScript SDK](https://www.npmjs.com/package/skylink-api) — typisierte Clients
