---
title: "Getting Started with the Schiphol Developer Portal"
description: "Learn how to consume Schiphol APIs: create an application, get your credentials, request an access token, and make your first authenticated API call."
url: "https://developer.schiphol.nl/news-and-updates/api-consumer-getting-started-guide"
image: "https://developer.schiphol.nl/_og/d/c_Ocean.takumi,title_Getting+Started+with+the+Schiphol+Developer+Portal,description_~TGVhcm4gaG93IHRvIGNvbnN1bWUgU2NoaXBob2wgQVBJczogY3JlYXRlIGFuIGFwcGxpY2F0aW9uLCBnZXQgeW91ciBjcmVkZW50aWFscywgcmVxdWVzdCBhbiBhY2Nlc3MgdG9rZW4sIGFuZCBtYWtlIHlvdXIgZmlyc3QgYXV0aGVudGljYXRlZCBBUEkgY2FsbC4,props_eyJ0aGVtZSI6eyJtb2RlIjoibGlnaHQiLCJjb2xvcnMiOnt9fX0,p_Ii9uZXdzLWFuZC11cGRhdGVzL2FwaS1jb25zdW1lci1nZXR0aW5nLXN0YXJ0ZWQtZ3VpZGUi,s_9QXRUPAXPu-e3c-s.png"
---

[← Back to News & Updates](https://developer.schiphol.nl/news-and-updates)

Guide

July 20, 2026

Getting Started with the Schiphol Developer Portal

By Schiphol API Team

![Getting Started Guide](https://images.ctfassets.net/9bvisqn57bx6/4I8J1eFlvJMSsDO4mvSlaC/48b7c052142d43d3a35325454ba04cef/cybersecurity_team_collaboration.svg)

Welcome to the **Schiphol Public Developer Portal**! This guide is for anyone who is new to the platform and wants to start consuming our APIs. In just four steps you will have your credentials set up, a token in hand, and your first authenticated API call working.

Before you begin

Make sure you have: access to this Developer Portal · a clear idea of which API(s) you want to use · a secure way to store a secret (environment variables or a secrets manager such as Azure Key Vault).

## [How it works: at a glance](#how-it-works-at-a-glance)

The Schiphol API platform uses **OAuth 2.0 Client Credentials** to authenticate API consumers. Here is what you will do:

1

Create an Application

Register an application in the portal to receive your Client ID & Secret.

2

Subscribe to APIs

Link your application to the APIs you need and request access.

3

Get an Access Token

Exchange your credentials for a short-lived JWT token from Auth0.

4

Call the API

Include the token as a Bearer header on every API request.

New to OAuth 2.0? What is Client Credentials flow?+

OAuth 2.0 Client Credentials is an authentication method designed for **machine-to-machine communication**: your application exchanges a **Client ID** and **Client Secret** for a short-lived **JWT token** that you include in every API call.

Tokens expire automatically (after 30 minutes), your secret never travels to the API server, and you can revoke access instantly by rotating credentials in the portal.

## [Environment Configuration](#environment-configuration)

Token endpointhttps://api.auth.schiphol.nl/oauth/token

API audiencehttps://api.schiphol.nl/public

## [Step 1: Create an Application](#step-1-create-an-application)

1.  Log in to this Developer Portal with your account credentials
2.  Navigate to **My Apps** in the top navigation
3.  Click **Create Application** and fill in the details
4.  Copy your **Client ID** and **Client Secret**

Save your Client Secret now

The Client Secret is shown only once. Store it immediately in a secrets manager or environment variable - if lost, you must generate a new one.

## [Step 2: Subscribe to APIs](#step-2-subscribe-to-apis)

1.  Browse the [API catalogue](https://developer.schiphol.nl/apis) and open the API you need
2.  Click **Subscribe** and select your application
3.  Wait for approval if required - only Approved subscriptions allow API access

Approval may be required

Some APIs require manual approval before access is granted. Only APIs with an **Approved** status can be accessed using your token.

## [Step 3: Get an Access Token](#step-3-get-an-access-token)

curl --request POST \\
 --url https://api.auth.schiphol.nl/oauth/token \\
 --header 'Content-Type: application/x-www-form-urlencoded' \\
 --data 'grant\_type=client\_credentials' \\
 --data 'client\_id=YOUR\_CLIENT\_ID' \\
 --data 'client\_secret=YOUR\_CLIENT\_SECRET' \\
 --data 'audience=https://api.schiphol.nl/public'

What is the audience?

The `audience` tells Auth0 which API you want a token for. It must match the **tier** and **environment** of the API you will call - use the **API audience** value from the configuration section above (for the **public** tier this ends in `/public`). A mismatch results in a `401` or `403`. Each token is scoped to this audience only, so request a separate token if you call APIs in another tier.

{
 "access\_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
 "token\_type": "Bearer",
 "expires\_in": 1800
}

Token caching tip

Cache the token and reuse it for all API calls. The token is valid for 30 minutes - requesting a new one for every call will trigger rate limit errors.

## [Step 4: Call the API](#step-4-call-the-api)

curl --request GET \\
 --url 'https://api.schiphol.nl/public/public-flights/v4/flights' \\
 --header 'Authorization: Bearer YOUR\_ACCESS\_TOKEN' \\
 --header 'Accept: application/json'

A **401** means your token has expired. Request a new one. A **403** means your subscription is not yet approved.

## [What's next?](#whats-next)

[

Explore the API Catalogue

Browse all available APIs, documentation, and schemas.](https://developer.schiphol.nl/apis)[

Migration Guide

Coming from 3scale? Follow the migration guide.](https://developer.schiphol.nl/news-and-updates/api-consumer-migration-guide)[

API Best Practices

Token caching, error handling, and platform standards.](https://developer.schiphol.nl/news-and-updates/api-best-practices)[

Manage Your Applications

View apps, subscriptions, and credentials in one place.](https://developer.schiphol.nl/apps)

### [Flights](#flights)

-   [Departures](https://www.schiphol.nl/en/departures/)
-   [Arrivals](https://www.schiphol.nl/en/arrivals/)
-   [Transfers](https://www.schiphol.nl/en/transfers/)

### [Things to do at Schiphol](#things-to-do-at-schiphol)

-   [Shop](https://www.schiphol.nl/en/at-schiphol/shop/)
-   [Eat and drink](https://www.schiphol.nl/en/at-schiphol/eat-and-drink/)
-   [Airport maps](https://www.schiphol.nl/en/airport-maps/)
-   [Services](https://www.schiphol.nl/en/services/)

### [Check-in](#check-in)

-   [Ways to check in](https://www.schiphol.nl/en/check-in/)
-   [Baggage rules and checks](https://www.schiphol.nl/en/baggage/)
-   [How busy is Schiphol](https://www.schiphol.nl/en/busy/)

### [Traveling to and from Schiphol](#traveling-to-and-from-schiphol)

-   [All parking options](https://www.schiphol.nl/en/parking/)
-   [All travel options](https://www.schiphol.nl/en/from-to-schiphol/)
-   [Short-term parking](https://www.schiphol.nl/en/parking/short-term/)
-   [Long term parking](https://www.schiphol.nl/en/parking/long-term/)
-   [Pick-up & drop-off](https://www.schiphol.nl/en/pick-up-and-drop-off/)

### [All Schiphol websites](#all-schiphol-websites)

-   [Royal Schiphol Group](https://www.royalschipholgroup.com/)
-   [Sustainability](https://www.schiphol.nl/en/sustainability/)
-   [Operations](https://www.schiphol.nl/en/operations/)
-   [Schiphol as a neighbour](https://www.schiphol.nl/en/schiphol-as-a-neighbour/)
-   [Careers at Schiphol Group](https://werkenbijschiphol.nl/)
-   [You and Schiphol](https://www.schiphol.nl/en/you-and-schiphol/)
-   [Developer Center](https://developer.schiphol.nl/)

![Developer Portal](https://developer.schiphol.nl/_core/api/v3/assets/logo?ref=1763460379699) © Schiphol 2025

-   [Privacy](https://www.schiphol.nl/en/privacy/)
-   [Schiphol regulations](https://www.schiphol.nl/en/regulations/)
-   [Accessibility](https://www.schiphol.nl/en/accessibility/)
-   [Disclaimer](https://www.schiphol.nl/en/disclaimer/)
-   [Newsletter](https://www.schiphol.nl/en/newsletter/)
-   [Contact us](https://www.schiphol.nl/en/contact/)