UniFlitzer API (v0.2.0)

Download OpenAPI specification:

The UniFlitzer API enables users to offer, join or request rides and communicate with each other. It also promotes the formation of long-term carpools. Verifying through university login and providing detailed information about drivers and passengers, ensures a safe, student-only community

User

createUser

Create a new user.

Authorizations:
Token Authentication
Request Body schema: application/json
required
firstName
required
string [ 1 .. 100 ] characters
lastName
required
string [ 1 .. 100 ] characters
birthday
required
string^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)...
gender
required
string
Enum: "Male" "Female" "Diverse" "PreferNotToSay"
required
object (AddressDP)
studyProgramme
required
string [ 2 .. 100 ] characters

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "birthday": "2024-12-24T12:00:00+01:00",
  • "gender": "Male",
  • "address": {
    },
  • "studyProgramme": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

createRatingForUser

Create a rating for a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
Request Body schema: application/json
required
role
required
string
Enum: "Driver" "Passenger"
content
required
string [ 1 .. 300 ] characters
stars
required
integer <int32> [ 0 .. 5 ]

Responses

Request samples

Content type
application/json
{
  • "role": "Driver",
  • "content": "string",
  • "stars": 5
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getImageOfUser

Get the image of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
query Parameters
quality
required
string
Enum: "Full" "Preview"

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

createImageForUser

Create an image for a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
Request Body schema: multipart/form-data
image
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

deleteImageOfUser

Delete the image of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

addFavoriteUserToUser

Add favorite user to a specific user

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
Request Body schema: application/json
required
id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

addFavoritePositionForUser

Create a favorite position for a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
Request Body schema: application/json
required
latitude
required
number <double> [ -90 .. 90 ]
longitude
required
number <double> [ -180 .. 180 ]

Responses

Request samples

Content type
application/json
{
  • "latitude": 50.32540777316511,
  • "longitude": 11.941037826886907
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

createCarForUser

Create a car for a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
Request Body schema: application/json
required
brand
required
string [ 2 .. 50 ] characters
model
required
string [ 1 .. 50 ] characters
color
required
string [ 3 .. 50 ] characters
licencePlate
required
string^[A-ZÖÜÄ]{1,3} [A-ZÖÜÄ]{1,2} [1-9][0-9]{0,3}[...

Responses

Request samples

Content type
application/json
{
  • "brand": "string",
  • "model": "string",
  • "color": "string",
  • "licencePlate": "string"
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getImageOfCarOfUser

Get the image of a specific car of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
carIndex
required
integer <int32> >= 0
query Parameters
quality
required
string
Enum: "Full" "Preview"

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

createImageForCarOfUser

Create an image for a specific car of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
carIndex
required
integer <int32> >= 0
Request Body schema: multipart/form-data
image
required
string <binary>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

addBlockedUserToUser

Add blocked user to a specific user

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
Request Body schema: application/json
required
id
required
string <uuid>

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getUser

Get details of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "firstName": "string",
  • "lastName": "string",
  • "birthday": "2024-12-24T12:00:00+01:00",
  • "gender": "Male",
  • "address": {
    },
  • "description": "string",
  • "studyProgramme": "string",
  • "isSmoking": true,
  • "animals": [
    ],
  • "drivingStyle": "Defensive",
  • "cars": [
    ],
  • "favoriteUsers": [
    ],
  • "blockedUsers": [
    ],
  • "favoritePositions": [
    ],
  • "ratings": [
    ],
  • "receivedInvites": [
    ]
}

updateUser

Update a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
Request Body schema: application/json
required
firstName
string [ 1 .. 100 ] characters
lastName
string [ 1 .. 100 ] characters
birthday
string^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)...
gender
string
Enum: "Male" "Female" "Diverse" "PreferNotToSay"
object (AddressDP)
studyProgramme
string [ 2 .. 200 ] characters
description
string
isSmoking
boolean
animals
Array of strings
Items Enum: "Dog" "Cat" "Horse" "Rodent" "Bird"
drivingStyle
string
Enum: "Defensive" "Relaxed" "Normal" "Passionate"

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "birthday": "2024-12-24T12:00:00+01:00",
  • "gender": "Male",
  • "address": {
    },
  • "studyProgramme": "string",
  • "description": "string",
  • "isSmoking": true,
  • "animals": [
    ],
  • "drivingStyle": "Defensive"
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getDrivesOfUser

Get all drives of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
query Parameters
pageNumber
required
integer <int32> >= 1
perPage
required
integer <int32> [ 1 .. 200 ]
sortingDirection
string
Enum: "Ascending" "Descending"

Responses

Response samples

Content type
application/json
{
  • "maximumPage": 0,
  • "content": [
    ]
}

getDriveRequestsOfUser

Get all drive requests of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
query Parameters
pageNumber
required
integer <int32> >= 1
perPage
required
integer <int32> [ 1 .. 200 ]
sortingDirection
string
Enum: "Ascending" "Descending"

Responses

Response samples

Content type
application/json
{
  • "maximumPage": 0,
  • "content": [
    ]
}

getDriveOffersOfUser

Get all drive offers of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
query Parameters
pageNumber
required
integer <int32> >= 1
perPage
required
integer <int32> [ 1 .. 200 ]
sortingDirection
string
Enum: "Ascending" "Descending"
role
string
Enum: "Driver" "Passenger" "Requester"

Responses

Response samples

Content type
application/json
{
  • "maximumPage": 0,
  • "content": [
    ]
}

getCarpoolsOfUser

Get all carpools of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
query Parameters
pageNumber
required
integer <int32> >= 1
perPage
required
integer <int32> [ 1 .. 200 ]
sortingDirection
string
Enum: "Ascending" "Descending"

Responses

Response samples

Content type
application/json
{
  • "maximumPage": 0,
  • "content": [
    ]
}

deleteFavoriteUserOfUser

Delete favorite user of a specific user

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
favoriteUserId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

deleteFavoritePositionOfUser

Delete a favorite position of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
positionIndex
required
integer <int32> >= 0

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

deleteCarOfUser

Delete the car of a specific user.

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
carIndex
required
integer <int32> >= 0

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

deleteBlockedUserOfUser

Delete blocked user of a specific user

Authorizations:
Token Authentication
path Parameters
userId
required
string <uuid>
blockedUserId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

Drives

confirmUserStop

Confirm that your are waiting at a specific user stop of a specific drive.

Authorizations:
Token Authentication
path Parameters
driveId
required
string <uuid>
userId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

cancelUserStop

Cancel a specific user stop of a specific drive.

Authorizations:
Token Authentication
path Parameters
driveId
required
string <uuid>
userId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

cancelDrive

Cancel a specific drive.

Authorizations:
Token Authentication
path Parameters
driveId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getDrive

Get details of a specific drive.

Authorizations:
Token Authentication
path Parameters
driveId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "driver": {
    },
  • "car": {
    },
  • "passengers": [
    ],
  • "route": {
    },
  • "plannedDeparture": "2024-12-24T12:00:00+01:00",
  • "actualDeparture": "2024-12-24T12:00:00+01:00",
  • "plannedArrival": "2024-12-24T12:00:00+01:00",
  • "actualArrival": "2024-12-24T12:00:00+01:00",
  • "isCancelled": true
}

updateDrive

Update the actual departure or the arrival of a specific drive. If the actual departure was updated once, it must not be updated again. The same applies to the arrival.

Authorizations:
Token Authentication
path Parameters
driveId
required
string <uuid>
Request Body schema: application/json
required
actualDeparture
string^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)...
actualArrival
string^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)...

Responses

Request samples

Content type
application/json
{
  • "actualDeparture": "2024-12-24T12:00:00+01:00",
  • "actualArrival": "2024-12-24T12:00:00+01:00"
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

updateCurrentPositionOfUser

Update the current position of a specific user

Authorizations:
Token Authentication
path Parameters
driveId
required
string <uuid>
Request Body schema: application/json
required
latitude
required
number <double> [ -90 .. 90 ]
longitude
required
number <double> [ -180 .. 180 ]

Responses

Request samples

Content type
application/json
{
  • "latitude": 50.32540777316511,
  • "longitude": 11.941037826886907
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getImageOfCar

Get the image of the car of a specific drive.

Authorizations:
Token Authentication
path Parameters
driveId
required
string <uuid>
query Parameters
quality
required
string
Enum: "Full" "Preview"

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

Drive Requests

getDriveRequests

Get all drive requests.

Authorizations:
Token Authentication
query Parameters
pageNumber
required
integer <int32> >= 1
perPage
required
integer <int32> [ 1 .. 200 ]
role
string
Enum: "Driver" "Passenger"
currentLatitude
number <double>
currentLongitude
number <double>
sortingDirection
string
Enum: "Ascending" "Descending"
scheduleTimeType
string
Enum: "Arrival" "Departure"
scheduleTime
string <date-time>

Responses

Response samples

Content type
application/json
{
  • "maximumPage": 0,
  • "content": [
    ]
}

createDriveRequest

Create a new drive request.

Authorizations:
Token Authentication
Request Body schema: application/json
required
One of
required
object (RouteCreationDP)
object (ScheduleTimeDP)
type
required
string
carpoolId
required
string <uuid>

Responses

Request samples

Content type
application/json
Example
{
  • "route": {
    },
  • "scheduleTime": {
    },
  • "type": "string",
  • "carpoolId": "58a056fa-a4cc-42a9-8d83-c036f04fa180"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

createDriveOfferForDriveRequest

Create a new drive offer for a specific drive request. The drive request is either deleted if it's a CarpoolDriveRequest or its drive offers list is updated if it's a PublicDriveRequest.

Authorizations:
Token Authentication
path Parameters
driveRequestId
required
string <uuid>
Request Body schema: application/json
required
One of
carIndex
required
integer <int32> >= 0
freeSeats
required
integer <int32> [ 1 .. 8 ]
required
object (RouteCreationDP)
object (ScheduleTimeDP)
type
required
string
carpoolId
required
string <uuid>

Responses

Request samples

Content type
application/json
Example
{
  • "carIndex": 0,
  • "freeSeats": 1,
  • "route": {
    },
  • "scheduleTime": {
    },
  • "type": "string",
  • "carpoolId": "58a056fa-a4cc-42a9-8d83-c036f04fa180"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

rejectDriveOffer

This endpoint is only allowed to use on a PublicRequestRequest. Reject a specific drive offer for a specific drive request. Neither the drive request nor the drive offer is deleted so other users can still see them.

Authorizations:
Token Authentication
path Parameters
driveRequestId
required
string <uuid>
driveOfferId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

acceptDriveOffer

This endpoint is only allowed to use on a PublicRequestRequest. Accept a specific drive offer for a specific drive request. The requesting user of the drive request is automatically accepted as a passenger and the drive request is deleted.

Authorizations:
Token Authentication
path Parameters
driveRequestId
required
string <uuid>
driveOfferId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getDriveRequest

Get details of a specific drive request.

Authorizations:
Token Authentication
path Parameters
driveRequestId
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "containsFavoriteRequestingUser": true,
  • "requestingUser": {
    },
  • "route": {
    },
  • "scheduleTime": {
    },
  • "type": "string",
  • "carpool": {
    }
}

deleteDriveRequest

Delete a specific drive request.

Authorizations:
Token Authentication
path Parameters
driveRequestId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

Drive Offers

getDriveOffers

Get all drive offers.

Authorizations:
Token Authentication
query Parameters
pageNumber
required
integer <int32> >= 1
perPage
required
integer <int32> [ 1 .. 200 ]
startLatitude
required
number <double>
startLongitude
required
number <double>
destinationLatitude
required
number <double>
destinationLongitude
required
number <double>
allowedAnimals
Array of strings
Items Enum: "Dog" "Cat" "Horse" "Rodent" "Bird"
isSmoking
boolean
allowedDrivingStyles
Array of strings
Items Enum: "Defensive" "Relaxed" "Normal" "Passionate"
allowedGenders
Array of strings
Items Enum: "Male" "Female" "Diverse" "PreferNotToSay"
sortingDirection
string
Enum: "Ascending" "Descending"
scheduleTimeType
string
Enum: "Arrival" "Departure"
scheduleTime
string <date-time>

Responses

Response samples

Content type
application/json
{
  • "maximumPage": 0,
  • "content": [
    ]
}

Create a new drive offer.

Endpoint for a user to create a new drive offer. If the drive offer is a public drive offer, it will be open for seat requests from all users. If it is a carpool drive offer, it will be linked to a specific carpool. It is important to note that the car specified for the drive offer including its image is copied and not referenced.

Authorizations:
Token Authentication
Request Body schema: application/json
required
One of
carIndex
required
integer <int32> >= 0
freeSeats
required
integer <int32> [ 1 .. 8 ]
required
object (RouteCreationDP)
object (ScheduleTimeDP)
type
required
string
carpoolId
required
string <uuid>

Responses

Request samples

Content type
application/json
Example
{
  • "carIndex": 0,
  • "freeSeats": 1,
  • "route": {
    },
  • "scheduleTime": {
    },
  • "type": "string",
  • "carpoolId": "58a056fa-a4cc-42a9-8d83-c036f04fa180"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Request a seat for a specific drive offer.

Endpoint for a user to request a seat for a specific drive offer. If the drive offer is a public drive offer, the user will be added to the requesting users. If the drive offer is a carpool drive offer, the user will be added to the passengers.

Authorizations:
Token Authentication
path Parameters
driveOfferId
required
string <uuid>

The id of the drive offer the user wants to request.

Request Body schema: application/json
required
required
object (CoordinateDP)
required
object (CoordinateDP)

Responses

Request samples

Content type
application/json
{
  • "start": {
    },
  • "destination": {
    }
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

rejectRequestingUser

Reject a requesting user for a specific drive offer.

Authorizations:
Token Authentication
path Parameters
driveOfferId
required
string <uuid>
requestingUserId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

Accept a requesting user for a specific drive offer.

Endpoint that allows the driver of the specified drive offer to accept a user who has requested a seat in a public drive offer. If the operation is successful, the requesting user becomes a passenger, and the route is updated accordingly. If the drive offer is a carpool drive offer, the request has already been automatically accepted, leading to an unprocessable content error.

Authorizations:
Token Authentication
path Parameters
driveOfferId
required
string <uuid>

The ID of the drive offer for which the user is requesting a seat.

requestingUserId
required
string <uuid>

The ID of the user requesting to join the drive offer.

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getDriveOffer

Get details of a specific drive offer.

Authorizations:
Token Authentication
path Parameters
driveOfferId
required
string <uuid>

Responses

Response samples

Content type
application/json
Example
{
  • "containsFavoriteDriver": true,
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "driver": {
    },
  • "car": {
    },
  • "freeSeats": 1,
  • "route": {
    },
  • "passengers": [
    ],
  • "scheduleTime": {
    },
  • "type": "string",
  • "carpool": {
    }
}

deleteDriveOffer

Delete a drive offer.

Authorizations:
Token Authentication
path Parameters
driveOfferId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

updateDriveOffer

Update a specific drive offer. Only the schedule time can be updated.

Authorizations:
Token Authentication
path Parameters
driveOfferId
required
string <uuid>
Request Body schema: application/json
required
required
object (ScheduleTimeDP)

Responses

Request samples

Content type
application/json
{
  • "scheduleTime": {
    }
}

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getCompleteRouteWithRequestingUser

Get the complete route for a specific drive offer including its passengers and a specific requesting user.

Authorizations:
Token Authentication
path Parameters
driveOfferId
required
string <uuid>
requestingUserId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "start": {
    },
  • "destination": {
    },
  • "duration": 0,
  • "polyline": {
    }
}

getImageOfCar_1

Get the image of the car of a specific drive offer.

Authorizations:
Token Authentication
path Parameters
driveOfferId
required
string <uuid>
query Parameters
quality
required
string
Enum: "Full" "Preview"

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

Carpools

createCarpool

Create a new carpool.

Authorizations:
Token Authentication
Request Body schema: application/json
required
name
required
string [ 2 .. 100 ] characters

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

sendInviteForCarpool

Send an invite to a user to join a specific carpool.

Authorizations:
Token Authentication
path Parameters
carpoolId
required
string <uuid>
username
required
string

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

rejectInviteForCarpool

Reject an invite to join a specific carpool.

Authorizations:
Token Authentication
path Parameters
carpoolId
required
string <uuid>
userId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

acceptInviteForCarpool

Accept an invite to join a specific carpool.

Authorizations:
Token Authentication
path Parameters
carpoolId
required
string <uuid>
userId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}

getCarpool

Get details of a specific carpool.

Authorizations:
Token Authentication
path Parameters
carpoolId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "users": [
    ],
  • "driveRequests": [
    ],
  • "driveOffers": [
    ],
  • "drives": [
    ],
  • "sentInvites": [
    ]
}

deleteCarpool

Delete a specific carpool.

Authorizations:
Token Authentication
path Parameters
carpoolId
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "messages": [
    ]
}