Open Government, Luxembourg

Open Government, Luxembourg — free-tier JSON endpoint

🏛 GovernmentHEALTHYchecked 4h ago
AUTH APIKEYCORS AGENT HTTPS COMMERCIAL ?

Open Government, Luxembourg offers a free API tier. We verified JSON on a sample GET (Government). Check provider docs for key requirements and limits.

79HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: 79 · healthy
Uptime history
99.02%90 days
98.3%30 days
2321P50 · ms
3983P95 · ms
operationalpartialdownno data
Response time · last 48 checks
Fastest 246 ms, slowest 3607 ms, most recent 694 ms.
Live response samplecaptured by our last successful check
GET https://data.public.lu/api/1/swagger.json

{
  "basePath": "/api/1",
  "consumes": [
    "application/json"
  ],
  "definitions": {
    "Activity": {
      "properties": {
        "actor": {
          "allOf": [
            {
              "$ref": "#/definitions/UserReference"
            }
          ],
          "description": "The user who performed the action",
          "readOnly": true
        },
        "created_at": {
          "description": "When the action has been performed",
          "format": "date-time",
          "readOnly": true,
          "type": "string"
        },
        "extras": {
          "description": "Extras attributes as key-value pairs",
          "type": "object"
        },
        "icon": {
          "description": "The icon of the activity",
          "type": "string"
        },
        "key": {
          "description": "The key of the activity",
          "type": "string"
        },
        "label": {
          "description": "The label of the activity",
          "type": "string"
        },
        "organization": {
          "allOf": [
            {
              "$ref": "#/definitions/OrganizationReference"
            }
          ],
          "description": "The organization who performed the action",
          "readOnly": true
        },
        "related_to": {
          "description": "The activity target name",
          "type": "string"
        }
      },
      "required": [
        "icon",
        "key"
      ],
      "type": "object"
    },
    "ActivityPage": {
      "properties": {
        "data": {
          "description": "The page data",
          "items": {
            "$ref": "#/definitions/Activity"
          },
          "type": "array"
        },
        "next_page": {
          "description": "The next page URL if exists",
          "type": "string"
        },
        "page": {
          "description": "The current page",
          "minimum": 1,
          "type": "integer"
        },
        "page_size": {
          "description": "The page size used for pagination",
          "minimum": 0,
          "type": "integer"
        },
        "previous_page": {
          "description": "The previous page URL if exists",
          "type": "string"
        },
        "total": {
          "description": "The total paginated items",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "page",
        "page_size"
      ],
      "type": "object"
    },
    "ApiKey": {
      "properties": {
        "apikey": {
          "description": "The user API Key",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "Badge": {
      "properties": {
        "kind": {
          "description": "Kind of badge (certified, etc), specific to each model",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "BaseReference": {
      "discriminator": "class",
      "properties": {
        "class": {
          "description": "The object class",
          "type": "string"
        },
        "id": {
          "description": "The object unique identifier",
          "type": "string"
        }
      },
      "required": [
        "class",
        "id"
      ],
      "type": "object"
    },
    "CatalogSchema": {
      "properties": {
        "consolidation_dataset_id": {
          "type": "string"
        },
        "contact": {
          "type": "string"
        },
        "datapackage_description": {
          "description": "Only present if the schema is inside a datapackage",
          "type": "string"
        },
        "datapackage_name": {
          "description": "Only present if the schema is inside a datapackage",
          "type": "string"
        },
        "datapackage_title": {
          "description": "Only present if the schema is inside a datapackage",
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "examples": {
          "items": {
            "$ref": "#/definitions/CatalogSchemaExample"
          },
          "type": "array"
        },
        "external_doc": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "CatalogSchemaExample": {
      "properties": {
        "path": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "CatalogSchemaVersion": {
      "properties": {
        "schema_url": {
          "type": "string"
        },
        "version_name": {
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "host": "data.public.lu",
  "info": {
    "description": "uData API",
    "title": "uData API",
    "version": "1.0"
  },
  "paths": {
    "/activity": {
      "get": {
        "operationId": "activity",
        "parameters": [
          {
            "default": 1,
            "description": "The page to fetch",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": 20,
            "description": "The page size to fetch",
            "in": "query",
            "name": "page_size",
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ActivityPage"
            }
          }
        },
        "summary": "Fetch site activity, optionally filtered by user of org",
        "tags": [
          "site"
        ]
      }
    },
    "/avatars/{identifier}/{size}": {
      "get": {
        "operationId": "avatars",
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "summary": "Get a deterministic avatar given an identifier at a given size",
        "tags": [
          "avatars"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "identifier",
          "required": true,
          "type": "string"
        },
        {
          "in": "path",
          "name": "size",
          "required": true,
          "type": "integer"
        }
      ]
    },
    "/contacts/": {
      "post": {
        "operationId": "create_contact_point",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContactPoint"
            }
          },
          {
            "description": "An optional fields mask",
            "format": "mask",
            "in": "header",
            "name": "X-Fields",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ContactPoint"
            }
          },
          "400": {
            "description": "Validation error"
          }
        },
        "summary": "Creates a contact point",
        "tags": [
          "contacts"
        ]
      }
    },
    "/contacts/{contact_point}/": {
      "delete": {
        "operationId": "delete_contact_point",
        "responses": {
          "204": {
            "description": "Contact point deleted"
          },
          "404": {
            "description": "Contact point not found"
          }
        },
        "summary": "Deletes a contact point given its identifier",
        "tags": [
          "contacts"
        ]
      },
      "get": {
        "operationId": "get_contact_point",
        "parameters": [
          {
            "description": "An optional fields mask",
            "format": "mask",
            "in": "header",
            "name": "X-Fields",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ContactPoint"
            }
          },
          "404": {
            "description": "Contact point not found"
          }
        },
        "summary": "Get a contact point given its identifier",
        "tags": [
          "contacts"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "contact_point",
          "required": true,
          "type": "string"
        }
      ],
      "put": {
        "operationId": "update_contact_point",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContactPoint"
            }
          },
          {
            "description": "An optional fields mask",
            "format": "mask",
            "in": "header",
            "name": "X-Fields",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ContactPoint"
            }
          },
          "400": {
            "description": "Validation error"
          },
          "404": {
            "description": "Contact point not found"
          }
        },
        "summary": "Updates a contact point given its identifier",
        "tags": [
          "contacts"
        ]
      }
    },
    "/dataservices/": {
      "get": {
        "operationId": "list_dataservices",
        "parameters": [
          {
            "default": 1,
            "description": "The page to display",
            "in": "query",
            "name": "page",
            "type": "integer"
          },
          {
            "default": 20,
            "description": "The page size",
            "in": "query",
            "name": "page_size",
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DataservicePage"
            }
          }
        },
        "summary": "List or search all dataservices",
        "tags": [
          "dataservices"
        ]
      },
      "post": {
        "operationId": "create_dataservice",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Dataservice%20%28write%29"
            }
          },
          {
            "description": "An optional fields mask",
            "format": "mask",
            "in": "header",
            "name": "X-Fields",
            "type": "string"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Dataservice%20%28read%29"
            }
          },
          "400": {
            "description": "Validation error"
          }
        },
        "tags": [
          "dataservices"
        ]
      }
    },
    "/dataservices/{dataservice}/": {
      "delete": {
        "operationId": "delete_dataservice",
        "responses": {
          "204": {
            "description": "dataservice deleted"
          }
        },
        "tags": [
          "dataservices"
        ]
      },
      "get": {
        "operationId": "get_dataservice",
        "parameters": [
          {
            "description": "An optional fields mask",
            "format": "mask",
            "in": "header",
            "name": "X-Fields",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Dataservice%20%28read%29"
            }
          }
        },
        "tags": [
          "dataservices"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "dataservice",
          "required": true,
          "type": "string"
        }
      ],
      "patch": {
        "operationId": "update_dataservice",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Dataservice%20%28write%29"
            }
          },
          {
            "description": "An optional fields mask",
            "format": "mask",
            "in": "header",
            "name": "X-Fields",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Dataservice%20%28read%29"
            }
          },
          "400": {
            "description": "Validation error"
          }
        },
        "tags": [
          "dataservices"
        ]
      }
    },
    "/dataservices/{dataservice}/datasets/": {
      "parameters": [
        {
          "description": "The dataservice ID or slug",
          "in": "path",
          "name": "dataservice",
          "required": true,
          "type": "string"
        }
      ],
      "post": {
        "operationId": "dataservice_datasets_create",
        "parameters": [
          {
            "in": "body",
            "name": "payload",
            "required": true,
            "schema": {
              "items": {
                "$ref": "#/definitions/DataserviceDatasetsAdd"
              },
              "type": "array"
            }
          },
          {
            "description": "An optional fields mask",
            "format": "mask",
            "in": "header",
            "name": "X-Fields",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Dataservice%20%28read%29"
            }
          },
          "400": {
            "description": "Malformed object id(s) in request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Dataservice not found"
          },
          "410": {
            "description": "Dataservice has been deleted"
          }
        },
        "tags": [
          "dataservices"
        ]
      }
    },
    "/dataservices/{dataservice}/datasets/{dataset}/": {
      "delete": {
        "operationId": "delete_dataservice_dataset_api_/dataservices/<dataservice:dataservice>/datasets/<dataset:dataset>/",
        "responses": {
          "404": {
            "description": "Dataservice not found"
          }
        },
        "tags": [
          "dataservices"
        ]
      },
      "parameters": [
        {
          "description": "The dataservice ID or slug",
          "in": "path",
          "name": "dataservice",
          "required": true,
          "type": "string"
        },
        {
          "in": "path",
          "name": "dataset",
          "required": true,
          "type": "string"
        }
      ]
    }
  },
  "produces": [
    "application/json"
  ],
  "responses": {
    "FieldValidationError": {
      "description": "A validation error",
      "schema": {
        "$ref": "#/definitions/ValidationError"
      }
    },
    "MaskError": {
      "description": "When any error occurs on mask"
    },
    "ParseError": {
      "description": "When a mask can't be parsed"
    },
    "PermissionDenied": {
      "description": "Error occuring when the user does not have the required permissions",
      "schema": {
        "$ref": "#/definitions/Error"
      }
    },
    "UnauthorizedFileType": {
      "description": "Error occuring when the user try to upload a non-allowed file type",
      "schema": {
        "$ref": "#/definitions/Error"
      }
    },
    "UploadError": {
      "description": "API Upload response handler",
      "schema": {
        "$ref": "#/definitions/UploadStatus"
      }
    },
    "UploadProgress": {
      "description": "API Upload response handler",
      "schema": {
        "$ref": "#/definitions/UploadStatus"
      }
    },
    "UploadStatus": {
      "description": "API Upload response handler",
      "schema": {
        "$ref": "#/definitions/UploadStatus"
      }
    }
  }
}
Call itcurl · fetch · python
curl "https://data.public.lu/api/1/swagger.json"
const res = await fetch("https://data.public.lu/api/1/swagger.json");
const data = await res.json();
console.log(data);
import requests

res = requests.get("https://data.public.lu/api/1/swagger.json")
print(res.json())
Endpoints · 5HealthyFULL DOCS ↗
Monitored path responding — GET /api/1/swagger.json2321 mschecked 4h ago
GET/api/1/swagger.jsonPROBED

Open Government, Luxembourg — free-tier JSON endpoint

GET/api

Api — documented GET route.

GET/api/1

Api details by ID (example: 1).

GET/api?limit=10

Api — documented GET route.

GET/api/search?q=test

Search by query parameters.

Machine-readable spec

We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.

Response-shape history

Stable. No schema drift observed since monitoring began — the response shape has not changed under our checks.

Open Government, Luxembourg: common questions

Is Open Government, Luxembourg free to use?

Yes — Open Government, Luxembourg is a free government API. Free tier: Free tier — API key may be required for production. Whether the free tier allows commercial use is unclear — check the provider docs.

Does Open Government, Luxembourg need an API key?

Yes — Open Government, Luxembourg needs a free API key, which you pass on each request. Rate limits: Unpublished.

Can I call Open Government, Luxembourg from the browser?

Yes — Open Government, Luxembourg returns CORS headers over HTTPS, so front-end code can fetch it directly with no backend proxy. Use the fetch snippet on this page, or hit "Run live" to try it now.

Is Open Government, Luxembourg up right now?

As of our last scheduled check, Open Government, Luxembourg is healthy with 99.02% uptime over 90 days and a 2321 ms median response. We re-probe it every sweep — the status badge and uptime chart above always show the latest.