SDKs overview

Schiphol Airport offers a suite of Software Development Kits (SDKs) and libraries designed to streamline the integration of its various API services into third-party applications. These SDKs abstract much of the complexity involved in making HTTP requests, handling authentication, and parsing API responses, allowing developers to focus on building features rather than managing low-level API interactions. The available SDKs support a range of popular programming languages, catering to diverse development environments and preferences.

The primary goal of these SDKs is to provide convenient, language-specific interfaces for accessing Schiphol's core data products, which include flight information, parking details, shop and food directory, and security wait times. By using an SDK, developers can often reduce the amount of boilerplate code required, improve development speed, and benefit from integrated features like error handling and request retries. The SDKs are particularly beneficial for applications focused on flight tracking, airport navigation tools, and comprehensive travel planning services that require real-time airport data.

Adoption of these SDKs is encouraged for projects aiming to build applications that connect directly with Schiphol's operational data. They are designed to work seamlessly with the Schiphol Airport API reference, ensuring consistency and adherence to API specifications. Developers can typically find detailed documentation, installation instructions, and code examples within the Schiphol developer portal.

Official SDKs by language

Schiphol Airport provides official SDKs for several programming languages, developed and maintained to ensure compatibility and optimal performance with its APIs. These SDKs are typically generated from the API's OpenAPI specification, ensuring they accurately reflect the available endpoints and data models. This approach helps maintain consistency between the API documentation and the client libraries.

The official SDKs generally offer:

  • Type Safety: For languages that support it, SDKs provide type definitions, reducing runtime errors and improving code readability.
  • Authentication Handling: Built-in mechanisms for managing API keys and other authentication methods.
  • Request/Response Serialization: Automatic conversion of data between native language objects and JSON/XML formats required by the API.
  • Error Handling: Structured error responses and exception handling to manage API-specific errors gracefully.
  • Convenience Methods: High-level functions that encapsulate common API interactions, simplifying complex workflows.

Below is a table summarizing the official SDKs available:

Language Package/Module Name (Example) Install Command (Example) Maturity/Status
JavaScript @schiphol/api-client-js npm install @schiphol/api-client-js or yarn add @schiphol/api-client-js Stable, actively maintained
Python schiphol-api-client-python pip install schiphol-api-client-python Stable, actively maintained
Ruby schiphol-api-client-ruby gem install schiphol-api-client-ruby Stable
Java com.schiphol.api:client-java Add to pom.xml (Maven) or build.gradle (Gradle) Stable
PHP schiphol/api-client-php composer require schiphol/api-client-php Stable
C# Schiphol.ApiClient.CSharp dotnet add package Schiphol.ApiClient.CSharp Stable
Go github.com/schiphol/api-client-go go get github.com/schiphol/api-client-go Stable

Developers are encouraged to consult the official Schiphol SDKs and Libraries documentation for the most up-to-date installation instructions, versioning information, and specific usage examples for each language. The documentation provides detailed guides on how to initialize clients, make API calls, and handle responses effectively.

Installation

Installing Schiphol Airport SDKs typically follows the standard package management practices for each respective programming language. Each SDK is distributed through its language's primary package repository, ensuring ease of access and version control. Before installation, developers usually need to obtain an API key from the Schiphol developer dashboard to authenticate their requests. The free Developer Plan allows up to 1,000 API calls per day, suitable for initial development and testing.

JavaScript (Node.js/Browser)

For JavaScript projects, the SDK is available via npm or yarn. This client can be used in both Node.js environments and modern web browsers that support module bundling.

npm install @schiphol/api-client-js
# or
yarn add @schiphol/api-client-js

Python

Python developers can install the SDK using pip, Python's package installer.

pip install schiphol-api-client-python

Ruby

Ruby projects typically use Bundler and RubyGems to manage dependencies.

gem install schiphol-api-client-ruby

Java

Java developers can integrate the SDK into their projects using Maven or Gradle. The necessary dependency coordinates are usually provided in the official documentation.

Maven (pom.xml):

<dependency>
    <groupId>com.schiphol.api</groupId>
    <artifactId>client-java</artifactId>
    <version>1.0.0</version> <!-- Use the latest version -->
</dependency>

Gradle (build.gradle):

implementation 'com.schiphol.api:client-java:1.0.0' // Use the latest version

PHP

PHP projects commonly use Composer for dependency management.

composer require schiphol/api-client-php

C# (.NET)

For C# applications, the SDK is available as a NuGet package, which can be installed via the .NET CLI or Visual Studio's NuGet Package Manager.

dotnet add package Schiphol.ApiClient.CSharp --version 1.0.0 # Use the latest version

Go

Go modules are used to install the SDK in Go projects.

go get github.com/schiphol/api-client-go@latest

After installation, developers should ensure their API key is securely stored and passed to the SDK client during initialization. Best practices suggest using environment variables or a secure configuration management system rather than hardcoding credentials directly into source code, as recommended by security guidelines such as those from Google Cloud's API key security best practices.

Quickstart example

This quickstart example demonstrates how to fetch real-time flight departures using the Python SDK. It covers client initialization, making an API call, and processing the response. Analogous examples are available for other languages within the Schiphol developer code examples section.

Python Quickstart: Fetching Flight Departures

First, ensure you have installed the Python SDK:

pip install schiphol-api-client-python

Next, replace YOUR_API_KEY with your actual Schiphol API key and YOUR_API_SECRET with your API secret. These credentials are obtained from your Schiphol developer dashboard.

import os
from schiphol_api_client.api_client import APIClient
from schiphol_api_client.exceptions import ApiException

# --- Configuration ---
# It's best practice to load credentials from environment variables
client_id = os.getenv('SCHIPHOL_API_KEY', 'YOUR_API_KEY')
client_secret = os.getenv('SCHIPHOL_API_SECRET', 'YOUR_API_SECRET')

# Initialize the API client
# The base URL defaults to the production endpoint, but can be overridden for testing.
client = APIClient(client_id=client_id, client_secret=client_secret)

try:
    # --- Fetch Flight Departures ---
    # This calls the Flight Information API's departures endpoint.
    # Parameters like 'scheduleDate' and 'airline' can be added as keyword arguments.
    # For example: departures = client.get_departures(scheduleDate='2026-06-01', airline='KL')
    print("Fetching latest flight departures...")
    departures = client.get_departures(page=0, size=5) # Fetch the first 5 departures

    if departures and departures.data:
        print(f"Found {len(departures.data)} departures:")
        for flight in departures.data:
            flight_number = flight.get('id', 'N/A')
            schedule_time = flight.get('scheduleDateTime', 'N/A')
            destination = flight.get('publicFlightState', {}).get('route', {}).get('destinations', ['N/A'])[0]
            terminal = flight.get('terminal', 'N/A')
            status = flight.get('publicFlightState', {}).get('flightStates', ['N/A'])[0]

            print(f"  Flight {flight_number}: Dest={destination}, Time={schedule_time}, Terminal={terminal}, Status={status}")
    else:
        print("No departures found or API response was empty.")

except ApiException as e:
    print(f"API Error: {e.status} - {e.reason}")
    print(f"Response body: {e.body}")
except Exception as e:
    print(f"An unexpected error occurred: {e}")

This script initializes the APIClient with your credentials and then calls the get_departures() method to retrieve a list of departing flights. It then iterates through the results, extracting key information such as flight number, scheduled time, destination, terminal, and current status. Error handling is included to catch potential API-specific exceptions, providing useful debugging information.

For more advanced queries, such as filtering by flight status, specific dates, or airlines, refer to the Flight Information API documentation for available parameters and their expected values. The SDK methods generally mirror the API's endpoint structure, making it straightforward to translate API reference calls into SDK method invocations.

Community libraries

While Schiphol Airport provides official SDKs, the developer community often contributes additional libraries, tools, and wrappers that extend functionality or offer alternative implementations. These community-driven projects can sometimes provide specialized features, support for less common languages, or integrations with specific frameworks that are not covered by the official offerings.

Community libraries are typically found on platforms like GitHub, npm, PyPI, or other language-specific package repositories. They are developed and maintained by individual developers or groups within the broader tech community. Before relying on a community library for production applications, it is advisable to:

  • Check its active maintenance: Verify when it was last updated and if there are active contributors.
  • Review its documentation: Ensure it is comprehensive and accurate.
  • Assess its test coverage: A well-tested library indicates reliability.
  • Examine its licensing: Understand the terms under which the library can be used.
  • Evaluate its community support: Look for issue trackers, forums, or chat channels where users can get help.

Examples of community contributions might include:

  • Framework-specific integrations: Libraries that integrate Schiphol APIs directly into popular web frameworks like React, Angular, Vue.js, Django, or Ruby on Rails.
  • Data visualization tools: Components or libraries that help visualize flight data on maps or display wait times in an intuitive format.
  • Command-line interfaces (CLIs): Tools for quick data retrieval and testing directly from the terminal.
  • Language wrappers: SDKs for languages not officially supported, such as Rust or Kotlin.

Developers interested in contributing to or discovering community projects can often find relevant repositories by searching for "Schiphol API" or "Schiphol SDK" on GitHub topics related to Schiphol API. While these libraries can be valuable, developers should exercise due diligence as they are not officially supported or guaranteed by Schiphol Airport. For mission-critical applications, the official SDKs and documentation remain the recommended choice due to direct vendor support and guaranteed compatibility.