{
    "openapi": "3.1.0",
    "info": {
        "title": "GetApi",
        "version": "0.0.1",
        "description": "## Authentication\n\nAll API endpoints require authentication. Include your API key in every request using **one** of the following methods:\n\n**Option 1 \u2014 X-Api-Key header (recommended)**\n```\nX-Api-Key: ga_live_xxxxxxxxxxxxxxxxxxxx\n```\n\n**Option 2 \u2014 Bearer token**\n```\nAuthorization: Bearer ga_live_xxxxxxxxxxxxxxxxxxxx\n```\n\nYou can generate and manage API keys in your [dashboard](https://getapi.nl/dashboard).\n\n## AI & Agent Payments (x402)\n\nSome endpoints support direct payments for AI agents via the **x402** protocol (https://www.x402.org).\nNo API key or account is needed. Send a normal request without key;\nthe server will respond with **HTTP 402** and a `PAYMENT-REQUIRED` header:\n\n```\nPAYMENT-REQUIRED: <base64 JSON PaymentRequirements>\n```\n\nThis base64 string contains, among other things, `network`, `asset`, `amount`, and `payTo`. \nYour agent signs an EIP-3009 *transferWithAuthorization* for the specified `amount` of USDC to that `payTo` address, \nencodes the signature as base64, and resubmits the request with:\n\n```\nPAYMENT-SIGNATURE: <base64 SignedAuthorization>\n```\n\nThe server verifies the signature via a facilitator, provides the data, and settles the payment on-chain. \nThe success response includes a `PAYMENT-RESPONSE` header containing the transaction information. \nA one-time `nonce` prevents replay attacks. Payments are made in USDC on **Base**; \nthe price is determined by the `credit_cost` of the endpoint.",
        "contact": {
            "email": "info@wdnoord.nl"
        },
        "x-guidance": "GetAPI.nl is een Nederlandse API-platform voor lookups en validaties (postcode,\nadres, kenteken, BTW, e-mail, KVK, IBAN, energiemaatwerk, overheidsdata). Elke\nendpoint accepteert een API key via de X-Api-Key header of Authorization:\nBearer <key>.\n\nSommige endpoints zijn ook direct betaalbaar voor AI-agents via het x402-protocol\n(https://www.x402.org) zonder account of API key: stuur een verzoek zonder key,\nde server antwoordt met HTTP 402 en een PAYMENT-REQUIRED header (base64 JSON met\nnetwork, asset, amount, payTo). Teken daarna een EIP-3009 transferWithAuthorization\nvoor het gevraagde bedrag in USDC op Base en hertrail met een PAYMENT-SIGNATURE\nheader. De server verifieert, levert de data en settleert on-chain.\n\nTips voor agents:\n- Lees eerst de PAYMENT-REQUIRED header van een 402-antwoord; die is leidend.\n- Geef altijd de exact door de server gevraagde parameters mee.\n- Een endpoint met een \"x-payment-info\" blok vereist betaling voor gebruik."
    },
    "servers": [
        {
            "url": "https://api.getapi.nl",
            "description": "GetAPI"
        }
    ],
    "security": [
        {
            "ApiKeyAuth": []
        },
        {
            "BearerAuth": []
        },
        {
            "ApiKeyAuth": []
        },
        {
            "BearerAuth": []
        }
    ],
    "paths": {
        "/v1/ndw/truckparking": {
            "get": {
                "operationId": "ndw.truckparking",
                "description": "Geeft een overzicht van alle truckparkeerplaatsen in Nederland met actuele bezettingsinformatie.\nStatische locatiedata wordt gecombineerd met dynamische bezettingsstatus (DATEX II).\nOptioneel te pagineren met `page` (+ `per_page`, max 500; alleen dan bevat de\nresponse een `meta`-blok). Filteren\nop status, beschikbaarheid of weg.",
                "summary": "Truckparking lijst",
                "tags": [
                    "NDW - Truckparking",
                    "NdwTruckparking"
                ],
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "enum": [
                                "available",
                                "full",
                                "closed",
                                "unknown"
                            ]
                        }
                    },
                    {
                        "name": "beschikbaar",
                        "in": "query",
                        "schema": {
                            "type": [
                                "boolean",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "road",
                        "in": "query",
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ],
                            "maxLength": 16
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ],
                            "minimum": 1,
                            "maximum": 500
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Lijst van truckparkeerplaatsen",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "examples": [
                                        {
                                            "total": 1,
                                            "results": [
                                                {
                                                    "id": "NL-12_421",
                                                    "name": "Truckstop Venlo",
                                                    "latitude": 51.39038,
                                                    "longitude": 6.108905,
                                                    "city": "Venlo",
                                                    "road": "A67",
                                                    "address": "James Cookweg",
                                                    "house_number": "31",
                                                    "postal_code": "5928LJ",
                                                    "country": "nl",
                                                    "total_capacity": 402,
                                                    "available_spaces": 1488,
                                                    "status": "available",
                                                    "site_details": {
                                                        "roads": [
                                                            {
                                                                "type": "primary",
                                                                "identifier": "A67",
                                                                "destination": "Onbekend",
                                                                "origination": null,
                                                                "junction_name": "39",
                                                                "distance_to_this_road_m": 1
                                                            }
                                                        ],
                                                        "tariffs": {
                                                            "free_of_charge": false,
                                                            "url": "https://truckparkingvenlo.nl",
                                                            "bands": [
                                                                {
                                                                    "name": "Tarief per uur",
                                                                    "currency": "eur",
                                                                    "amount": 1,
                                                                    "interval_seconds": 3600
                                                                }
                                                            ]
                                                        },
                                                        "facilities": [
                                                            {
                                                                "kind": "equipment",
                                                                "type": "electricChargingStation",
                                                                "availability": "available"
                                                            }
                                                        ],
                                                        "security": {
                                                            "values": [
                                                                "cctv",
                                                                "fences",
                                                                "lighting",
                                                                "guard24hours"
                                                            ],
                                                            "certified_secure_parking": true,
                                                            "label_security_level": "securityLevel3",
                                                            "label_self_assessment": "securityLevel3"
                                                        },
                                                        "supervision": [
                                                            "patrol"
                                                        ],
                                                        "reservation": "mandatory",
                                                        "usage_scenarios": [
                                                            "truckParking"
                                                        ],
                                                        "spaces_groups": [
                                                            {
                                                                "group_index": 0,
                                                                "number_of_spaces": 390,
                                                                "type_of_group": "statisticsOnly",
                                                                "vehicle_characteristics": [
                                                                    {
                                                                        "assignment": "assigned_among_others",
                                                                        "vehicleType": [
                                                                            "lorry"
                                                                        ]
                                                                    }
                                                                ]
                                                            }
                                                        ],
                                                        "record_version_time": "2024-03-19T08:47:28.943990Z"
                                                    },
                                                    "occupancy": {
                                                        "vacant_spaces": 1488,
                                                        "occupied_spaces": 0,
                                                        "occupancy_percent": 25.714285,
                                                        "site_status": "spacesAvailable",
                                                        "origin_time": "2026-09-21T15:22:57.424423863Z",
                                                        "groups": [
                                                            {
                                                                "group_index": 1,
                                                                "vacant_spaces": 248,
                                                                "occupied_spaces": 0,
                                                                "occupancy_percent": 30
                                                            }
                                                        ]
                                                    },
                                                    "static_updated_at": "2026-04-29T00:00:00+00:00",
                                                    "dynamic_updated_at": "2026-05-14T13:47:00+00:00"
                                                }
                                            ]
                                        }
                                    ],
                                    "anyOf": [
                                        {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "results": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "results"
                                            ]
                                        },
                                        {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "meta": {
                                                    "type": "object",
                                                    "properties": {
                                                        "page": {
                                                            "type": "integer"
                                                        },
                                                        "per_page": {
                                                            "type": "integer"
                                                        },
                                                        "last_page": {
                                                            "type": "integer"
                                                        },
                                                        "total": {
                                                            "type": "integer"
                                                        }
                                                    },
                                                    "required": [
                                                        "page",
                                                        "per_page",
                                                        "last_page",
                                                        "total"
                                                    ]
                                                },
                                                "results": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "string"
                                                            },
                                                            "name": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "latitude": {
                                                                "type": [
                                                                    "number",
                                                                    "null"
                                                                ]
                                                            },
                                                            "longitude": {
                                                                "type": [
                                                                    "number",
                                                                    "null"
                                                                ]
                                                            },
                                                            "city": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "road": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "address": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "house_number": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "postal_code": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "country": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "total_capacity": {
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ]
                                                            },
                                                            "available_spaces": {
                                                                "type": [
                                                                    "integer",
                                                                    "null"
                                                                ]
                                                            },
                                                            "status": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ]
                                                            },
                                                            "site_details": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "array",
                                                                        "items": []
                                                                    },
                                                                    {
                                                                        "type": "null"
                                                                    },
                                                                    {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "type": "string"
                                                                        },
                                                                        "minItems": 0,
                                                                        "maxItems": 0,
                                                                        "additionalItems": false
                                                                    }
                                                                ]
                                                            },
                                                            "occupancy": {
                                                                "anyOf": [
                                                                    {
                                                                        "type": "array",
                                                                        "items": []
                                                                    },
                                                                    {
                                                                        "type": "null"
                                                                    },
                                                                    {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "type": "string"
                                                                        },
                                                                        "minItems": 0,
                                                                        "maxItems": 0,
                                                                        "additionalItems": false
                                                                    }
                                                                ]
                                                            },
                                                            "static_updated_at": {
                                                                "type": "string"
                                                            },
                                                            "dynamic_updated_at": {
                                                                "type": "string"
                                                            }
                                                        },
                                                        "required": [
                                                            "id",
                                                            "name",
                                                            "latitude",
                                                            "longitude",
                                                            "city",
                                                            "road",
                                                            "address",
                                                            "house_number",
                                                            "postal_code",
                                                            "country",
                                                            "total_capacity",
                                                            "available_spaces",
                                                            "status",
                                                            "site_details",
                                                            "occupancy",
                                                            "static_updated_at",
                                                            "dynamic_updated_at"
                                                        ]
                                                    }
                                                }
                                            },
                                            "required": [
                                                "total",
                                                "meta",
                                                "results"
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationException"
                    },
                    "402": {
                        "description": "Payment Required"
                    }
                },
                "x-payment-info": {
                    "price": {
                        "mode": "fixed",
                        "currency": "USD",
                        "amount": "0.005000"
                    },
                    "protocols": [
                        {
                            "x402": {}
                        }
                    ]
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "ApiKeyAuth": {
                "type": "apiKey",
                "in": "header",
                "name": "X-Api-Key"
            },
            "BearerAuth": {
                "type": "http",
                "scheme": "bearer"
            }
        },
        "responses": {
            "ValidationException": {
                "description": "Validation error",
                "content": {
                    "application/json": {
                        "schema": {
                            "type": "object",
                            "properties": {
                                "message": {
                                    "type": "string",
                                    "description": "Errors overview."
                                },
                                "errors": {
                                    "type": "object",
                                    "description": "A detailed description of each field that failed validation.",
                                    "additionalProperties": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "required": [
                                "message",
                                "errors"
                            ]
                        }
                    }
                }
            }
        }
    }
}