Free spaces and EV chargers in Bergen, as JSON

Live parking counts, charge-point availability and current prices for Bergen Parkering's garages. Every endpoint is a single GET request with your API key.

  • ByGarasjen 1644
  • KlosterGarasjen 581
  • NordnesGarasjen No live count
  • SolheimsGarasjen No live count
  • EdvardGarasjen 317

Example data from GET /freespaces/parking. Base URL: https://api.ledig-parkering.no/api/v3

Authentication

Every request uses HTTP Basic authentication. Your token is the username and your tokenkey is the password. You get both by email when you request access.

Always call the API over HTTPS: Basic authentication only encodes the key, it does not encrypt it.

Join them with a colonTOKEN:TOKENKEY
Encode as Base64VE9LRU46VE9LRU5LRVk=
Send it as a headerAuthorization: Basic VE9LRU46VE9LRU5LRVk=

Test your key

GET/test

Check that your token and tokenkey work before you build anything else.

Errors

HTTPBodyWhen
200401 DeniedNo Authorization header was sent.
200Invalid credentialsThe token or tokenkey is wrong.
Request
curl https://api.ledig-parkering.no/api/v3/test \
  -u TOKEN:TOKENKEY
Example response
success

Spaces, chargers and prices

GET/freespaces

Free spaces, charger availability and the current price for ByGarasjen, KlosterGarasjen and EdvardGarasjen, fetched in one call.

Missing or wrong credentials answer with HTTP 400 on this endpoint.

Errors

HTTPBodyWhen
400401 DeniedNo Authorization header was sent.
400Invalid credentialsThe token or tokenkey is wrong.
500{"success":false, …}The parking counter did not answer.
Request
curl https://api.ledig-parkering.no/api/v3/freespaces \
  -u TOKEN:TOKENKEY
Example response
{
  "updated": "2026-10-27T11:00:00.000Z",
  "status": "",
  "data": {
    "bygarasjen": {
      "Name": "ByGarasjen, Bergen",
      "NumFreeSpaces": 1644,
      "NumAvailableChargepoints": 82,
      "NumOccupiedChargepoints": 30,
      "CurrentPrice": 24,
      "CurrentPriceElectric": 12,
      "MaxPricePer24Hours": 150,
      "StatusMessage": ""
    },
    "klostergarasjen": {
      "Name": "KlosterGarasjen, Bergen",
      "NumFreeSpaces": 581,
      "NumAvailableChargepoints": 18,
      "NumOccupiedChargepoints": 7,
      "CurrentPrice": 28,
      "CurrentPriceElectric": 14,
      "MaxPricePer24Hours": 200,
      "StatusMessage": ""
    },
    "edvard": {
      "Name": "EdvardGarasjen, Bergen",
      "NumFreeSpaces": 317,
      "NumAvailableChargepoints": 27,
      "NumOccupiedChargepoints": 5,
      "CurrentPrice": 28,
      "CurrentPriceElectric": 14,
      "MaxPricePer24Hours": 150
    }
  }
}

Free spaces in every garage

GET/freespaces/parking

Free spaces only, for all five garages.

Garages without live counting show "Midlertidig utilgjengelig" (temporarily unavailable) instead of a number.

Errors

HTTPBodyWhen
200401 DeniedNo Authorization header was sent.
200Invalid credentialsThe token or tokenkey is wrong.
Request
curl https://api.ledig-parkering.no/api/v3/freespaces/parking \
  -u TOKEN:TOKENKEY
Example response
{
  "updated": 1793350800000,
  "status": "OK",
  "data": {
    "bygarasjen": {
      "Name": "ByGarasjen, Bergen",
      "NumFreeSpaces": 1644,
      "StatusMessage": ""
    },
    "klostergarasjen": {
      "Name": "KlosterGarasjen, Bergen",
      "NumFreeSpaces": 581,
      "StatusMessage": ""
    },
    "nordnes": {
      "Name": "NordnesGarasjen, Bergen",
      "NumFreeSpaces": "Midlertidig utilgjengelig",
      "StatusMessage": ""
    },
    "solheimsviken": {
      "Name": "SolheimsGarasjen, Bergen",
      "NumFreeSpaces": "Midlertidig utilgjengelig",
      "StatusMessage": ""
    },
    "edvard": {
      "Name": "EdvardGarasjen, Bergen",
      "NumFreeSpaces": 317,
      "StatusMessage": ""
    }
  }
}

Free spaces in one garage

GET/freespaces/parking/{id}

Free spaces for a single garage.

Garage ids

  • klostergarasjen
  • bygarasjen
  • grieggarasjen

Errors

HTTPBodyWhen
200401 DeniedNo Authorization header was sent.
200Invalid credentialsThe token or tokenkey is wrong.
502{"status":"error", …}A data provider did not answer. Try again shortly.
Request
curl https://api.ledig-parkering.no/api/v3/freespaces/parking/klostergarasjen \
  -u TOKEN:TOKENKEY
Example response
{
  "updated": 1793350800000,
  "status": "OK",
  "data": {
    "facility": {
      "Name": "KlosterGarasjen, Bergen",
      "NumFreeSpaces": 581,
      "StatusMessage": "OK"
    }
  }
}

EV chargers in every garage

GET/freespaces/chargers

Available and occupied charge points, with the current price, for all garages.

EdvardGarasjen has no hourly price on this endpoint (CurrentPriceElectric is null). Use /freespaces for its price.

Errors

HTTPBodyWhen
200401 DeniedNo Authorization header was sent.
200Invalid credentialsThe token or tokenkey is wrong.
502{"status":"error", …}A data provider did not answer. Try again shortly.
Request
curl https://api.ledig-parkering.no/api/v3/freespaces/chargers \
  -u TOKEN:TOKENKEY
Example response
{
  "updated": 1793350800000,
  "status": "OK",
  "data": {
    "bygarasjen": {
      "Name": "ByGarasjen, Bergen",
      "NumAvailableChargepoints": 82,
      "NumOccupiedChargepoints": 30,
      "CurrentPrice": 24,
      "CurrentPriceElectric": 12,
      "MaxPricePer24Hours": 150
    },
    "klostergarasjen": {
      "Name": "KlosterGarasjen, Bergen",
      "NumAvailableChargepoints": 18,
      "NumOccupiedChargepoints": 7,
      "CurrentPrice": 28,
      "CurrentPriceElectric": 14,
      "MaxPricePer24Hours": 200
    },
    "nordnes": {
      "Name": "NordnesGarasjen, Bergen",
      "NumAvailableChargepoints": 0,
      "NumOccupiedChargepoints": 0,
      "CurrentPrice": 19,
      "CurrentPriceElectric": 9.5,
      "MaxPricePer24Hours": 0
    },
    "solheimsviken": {
      "Name": "SolheimsGarasjen, Bergen",
      "NumAvailableChargepoints": 0,
      "NumOccupiedChargepoints": 0,
      "CurrentPrice": 42,
      "CurrentPriceElectric": 21,
      "MaxPricePer24Hours": 0
    },
    "edvard": {
      "Name": "EdvardGarasjen, Bergen",
      "NumAvailableChargepoints": 27,
      "NumOccupiedChargepoints": 5,
      "CurrentPriceElectric": null,
      "MaxPricePer24Hours": 150
    }
  }
}

EV chargers in one garage

GET/freespaces/chargers/{id}

Charge points and price for a single garage. Any other id returns SolheimsGarasjen.

Garage ids

  • bygarasjen
  • klostergarasjen
  • nordnes

On this endpoint NumAvailableChargepoints holds the total number of charge points and NumOccupiedChargepoints holds the number that are free.

Errors

HTTPBodyWhen
200401 DeniedNo Authorization header was sent.
200Invalid credentialsThe token or tokenkey is wrong.
502{"status":"error", …}A data provider did not answer. Try again shortly.
Request
curl https://api.ledig-parkering.no/api/v3/freespaces/chargers/bygarasjen \
  -u TOKEN:TOKENKEY
Example response
{
  "updated": 1793350800000,
  "status": "OK",
  "data": {
    "facility": {
      "Name": "ByGarasjen, Bergen",
      "NumAvailableChargepoints": 112,
      "NumOccupiedChargepoints": 82,
      "CurrentPrice": 24,
      "CurrentPriceElectric": 12,
      "MaxPricePer24Hours": 150
    }
  }
}

Everything about one garage

GET/freespaces/single/{id}

Free spaces, chargers, prices, floors, maximum height and the current status message for one garage.

Garage ids

  • bygarasjen
  • klostergarasjen
  • nordnesgarasjen
  • solheimsgarasjen

Errors

HTTPBodyWhen
404Facility not foundThe id is not one of the garages above.
200401 DeniedNo Authorization header was sent.
200Invalid credentialsThe token or tokenkey is wrong.
502{"status":"error", …}A data provider did not answer. Try again shortly.
Request
curl https://api.ledig-parkering.no/api/v3/freespaces/single/bygarasjen \
  -u TOKEN:TOKENKEY
Example response
{
  "updated": 1793350800000,
  "status": "OK",
  "data": {
    "Name": "bygarasjen",
    "Location": "Fjøsangerveien 4",
    "Floors": 6,
    "MaxHeight": "2.2",
    "NumTotalSpaces": 1950,
    "NumFreeSpaces": 1644,
    "NumAvailableChargepoints": 82,
    "NumOccupiedChargepoints": 30,
    "CurrentPrice": 24,
    "CurrentPriceElectric": 12,
    "MaxPricePer24Hours": 150,
    "StatusMessage": ""
  }
}