Neuland API Documentation

Neuland API uses GraphQL to provide a flexible and powerful API for neuland.app and Neuland Next. This documentation provides a detailed overview of the API and its capabilities.

Queries

announcements

Description

Get the current announcements

Response

Returns [Announcement!]!

Example

Query
query announcements {
  announcements {
    id
    title {
      ...MultiLanguageStringFragment
    }
    description {
      ...MultiLanguageStringFragment
    }
    startDateTime
    endDateTime
    priority
    url
  }
}
Response
{
  "data": {
    "announcements": [
      {
        "id": 4,
        "title": MultiLanguageString,
        "description": MultiLanguageString,
        "startDateTime": "xyz789",
        "endDateTime": "xyz789",
        "priority": 987,
        "url": "xyz789"
      }
    ]
  }
}

bus

Description

Get the current bus departures at a specific station

Response

Returns [Bus!]!

Arguments
Name Description
station - String!

Example

Query
query bus($station: String!) {
  bus(station: $station) {
    route
    destination
    time
  }
}
Variables
{"station": "xyz789"}
Response
{
  "data": {
    "bus": [
      {
        "route": "abc123",
        "destination": "xyz789",
        "time": "xyz789"
      }
    ]
  }
}

charging

Description

Get the current electric vehicle charging stations in Ingolstadt

Response

Returns [ChargingStation!]!

Example

Query
query charging {
  charging {
    id
    name
    address
    city
    latitude
    longitude
    available
    total
    freeParking
    operator
  }
}
Response
{
  "data": {
    "charging": [
      {
        "id": 123,
        "name": "abc123",
        "address": "abc123",
        "city": "xyz789",
        "latitude": 987.65,
        "longitude": 987.65,
        "available": 123,
        "total": 123,
        "freeParking": false,
        "operator": "xyz789"
      }
    ]
  }
}

clEvents

Description

Get the campus life events

Response

Returns [ClEvent!]!

Example

Query
query clEvents {
  clEvents {
    id
    organizer
    title
    begin
    end
    location
    description
  }
}
Response
{
  "data": {
    "clEvents": [
      {
        "id": "4",
        "organizer": "abc123",
        "title": "abc123",
        "begin": "xyz789",
        "end": "abc123",
        "location": "xyz789",
        "description": "xyz789"
      }
    ]
  }
}

food

Description

Get the meal plan for a specific restaurant

Response

Returns a FoodResponse!

Arguments
Name Description
locations - [String!]

Example

Query
query food($locations: [String!]) {
  food(locations: $locations) {
    foodData {
      ...FoodFragment
    }
    errors {
      ...FoodErrorFragment
    }
  }
}
Variables
{"locations": ["abc123"]}
Response
{
  "data": {
    "food": {
      "foodData": [Food],
      "errors": [FoodError]
    }
  }
}

parking

Description

Get the current parking data in Ingolstadt

Response

Returns a ParkingData!

Example

Query
query parking {
  parking {
    updated
    lots {
      ...ParkingLotFragment
    }
  }
}
Response
{
  "data": {
    "parking": {
      "updated": "xyz789",
      "lots": [ParkingLot]
    }
  }
}

train

Description

Get the current train departures at a specific station

Response

Returns [Train!]!

Arguments
Name Description
station - String!

Example

Query
query train($station: String!) {
  train(station: $station) {
    name
    destination
    plannedTime
    actualTime
    canceled
    track
    url
  }
}
Variables
{"station": "xyz789"}
Response
{
  "data": {
    "train": [
      {
        "name": "xyz789",
        "destination": "abc123",
        "plannedTime": "abc123",
        "actualTime": "xyz789",
        "canceled": false,
        "track": "abc123",
        "url": "xyz789"
      }
    ]
  }
}

Types

Announcement

Description

Announcement data to display on top of the apps dashboard

Fields
Field Name Description
id - ID! Unique identifier of the announcement
title - MultiLanguageString! Title of the announcement in different languages
description - MultiLanguageString! Description of the announcement in different languages
startDateTime - String! Start date and time when the announcement is displayed
endDateTime - String! End date and time when the announcement is displayed
priority - Int! Priority of the announcement, higher are more important
url - String URL to the announcement
Example
{
  "id": "4",
  "title": MultiLanguageString,
  "description": MultiLanguageString,
  "startDateTime": "xyz789",
  "endDateTime": "abc123",
  "priority": 987,
  "url": "abc123"
}

Boolean

Description

The Boolean scalar type represents true or false.

Bus

Description

Charging station data

Fields
Field Name Description
route - String! Code of the bus route, like 10, N1, etc.
destination - String! Destination of the bus route
time - String! Planned time at the station
Example
{
  "route": "abc123",
  "destination": "abc123",
  "time": "xyz789"
}

ChargingStation

Description

Charging station data

Fields
Field Name Description
id - Int! Unique identifier of the charging station
name - String! Name of the charging station
address - String! Address of the charging station
city - String! City of the charging station
latitude - Float! Latitude of the charging station
longitude - Float! Longitude of the charging station
available - Int! Number of available charging points
total - Int! Number of total charging points
freeParking - Boolean True if the charging is labeled as free parking
operator - String Operator of the charging station
Example
{
  "id": 987,
  "name": "xyz789",
  "address": "xyz789",
  "city": "abc123",
  "latitude": 123.45,
  "longitude": 123.45,
  "available": 123,
  "total": 123,
  "freeParking": false,
  "operator": "xyz789"
}

ClEvent

Description

Campus Life Event

Fields
Field Name Description
id - ID! Unique identifier of the event
organizer - String! Organizer of the event
title - String! Title of the event in German
begin - String Begin of the event
end - String End of the event
location - String Location of the event (only available if it's eligible for external sharing)
description - String Description of the event (only available if it's eligible for external sharing)
Example
{
  "id": 4,
  "organizer": "abc123",
  "title": "abc123",
  "begin": "abc123",
  "end": "xyz789",
  "location": "abc123",
  "description": "abc123"
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

Food

Description

Provides a list of meals for a specific day

Fields
Field Name Description
timestamp - String! Date of the meal list
meals - [Meal!] List of meals
Example
{
  "timestamp": "abc123",
  "meals": [Meal]
}

FoodError

Description

Error message for the food query

Fields
Field Name Description
location - String! Location of the restaurant
message - String! Error message
Example
{
  "location": "abc123",
  "message": "abc123"
}

FoodResponse

Fields
Field Name Description
foodData - [Food!] List of meal days
errors - [FoodError!] Error message for the food query
Example
{
  "foodData": [Food],
  "errors": [FoodError]
}

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
"4"

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
123

Meal

Description

Meal data

Fields
Field Name Description
name - MultiLanguageString! Name of the meal in different languages
id - ID! Unique identifier of the meal
category - String! Category of the meal (main, soup or salad)
prices - Prices! Prices for different types of customers (student, employee, guest)
allergens - [String] List of allergens (e.g. gluten, lactose, etc.)
flags - [String] List of flags (e.g. vegan, vegetarian, etc.)
nutrition - Nutrition Nutritional values for the meal
variants - [Variation!] Variants or toppings of the meal, like bread, sauce, etc.
originalLanguage - OriginalLanguage! Original language of the meal name
static - Boolean! Static meals are always available, non-static meals are only available on specific days
restaurant - String! Restaurant where the meal is available (IngolstadtMensa, NeuburgMensa, Reimanns, Canisius)
Example
{
  "name": MultiLanguageString,
  "id": 4,
  "category": "xyz789",
  "prices": Prices,
  "allergens": ["abc123"],
  "flags": ["xyz789"],
  "nutrition": Nutrition,
  "variants": [Variation],
  "originalLanguage": "de",
  "static": false,
  "restaurant": "xyz789"
}

MultiLanguageString

Description

String in multiple languages (German and English)

Fields
Field Name Description
de - String German language code
en - String English language code
Example
{
  "de": "abc123",
  "en": "xyz789"
}

Nutrition

Description

Nutritional values for a meal. Currently only available at Mensa. Values are per average portion.

Fields
Field Name Description
kj - Float! Energy in kilojoules
kcal - Float! Energy in kilocalories
fat - Float! Fat in grams
fatSaturated - Float! Saturated fat in grams
carbs - Float! Carbohydrates in grams
sugar - Float! Sugar in grams
fiber - Float! Fiber in grams
protein - Float! Protein in grams
salt - Float! Salt in grams
Example
{
  "kj": 123.45,
  "kcal": 987.65,
  "fat": 987.65,
  "fatSaturated": 123.45,
  "carbs": 987.65,
  "sugar": 987.65,
  "fiber": 987.65,
  "protein": 123.45,
  "salt": 123.45
}

OriginalLanguage

Description

Original language of the meal name

Values
Enum Value Description

de

German language code

en

English language code
Example
"de"

Parent

Description

Parent meal for a variant meal

Fields
Field Name Description
id - ID! Unique identifier of the parent meal
category - String! Category of the parent meal (main, soup or salad)
name - MultiLanguageString! Name of the parent meal in different languages
Example
{
  "id": "4",
  "category": "xyz789",
  "name": MultiLanguageString
}

ParkingData

Description

Parking data

Fields
Field Name Description
updated - String! Timestamp of the last update from the source
lots - [ParkingLot!]! List of parking lots
Example
{
  "updated": "abc123",
  "lots": [ParkingLot]
}

ParkingLot

Description

Parking lot data

Fields
Field Name Description
name - String! Name of the parking lot
category - String! Category of the parking lot (parking garage, parking lot, etc.)
available - Int! Number of available parking spaces
total - Int! Total number of parking spaces
tendency - Int tendency of the parking lot (-1 : decreasing, 0 : stable, 1 : increasing) or null if not available
priceLevel - Int Static price level of the parking lot between 0 (free) and 3 (expensive) or null if not available
Example
{
  "name": "xyz789",
  "category": "abc123",
  "available": 987,
  "total": 123,
  "tendency": 123,
  "priceLevel": 123
}

Prices

Description

Prices for different types of customers

Fields
Field Name Description
student - Float Price for students
employee - Float Price for employees
guest - Float Price for guests
Example
{"student": 123.45, "employee": 987.65, "guest": 123.45}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

Train

Description

Train data

Fields
Field Name Description
name - String! Name of the train
destination - String! Destination of the train
plannedTime - String Planned departure time
actualTime - String Actual departure time
canceled - Boolean! True if the train is canceled
track - String Track of the train
url - String URL to the train information
Example
{
  "name": "xyz789",
  "destination": "xyz789",
  "plannedTime": "xyz789",
  "actualTime": "abc123",
  "canceled": true,
  "track": "xyz789",
  "url": "xyz789"
}

Variation

Description

Variants of a meal

Fields
Field Name Description
name - MultiLanguageString! Name of the variant in different languages
additional - Boolean! True if the variant is an additional topping and not a variant of the meal
prices - Prices! Prices for different types of customers (student, employee, guest)
id - ID! Unique identifier of the variant
allergens - [String] List of allergens (e.g. gluten, lactose, etc.)
flags - [String] List of flags (e.g. vegan, vegetarian, etc.)
nutrition - Nutrition Nutritional values for the variant
originalLanguage - OriginalLanguage! Original language of the variant name
static - Boolean! Static variants are always available, non-static variants are only available on specific days
restaurant - String Restaurant where the variant is available (IngolstadtMensa, NeuburgMensa, Reimanns, Canisius)
parent - Parent Parent meal for a variant meal
Example
{
  "name": MultiLanguageString,
  "additional": true,
  "prices": Prices,
  "id": "4",
  "allergens": ["xyz789"],
  "flags": ["abc123"],
  "nutrition": Nutrition,
  "originalLanguage": "de",
  "static": true,
  "restaurant": "xyz789",
  "parent": Parent
}