Download OpenAPI specification:
A ride-sharing API for connecting drivers and passengers.
Retrieves the details of a user by their unique identifier.
id required | string <uuid> |
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9"
}
Deletes a user by their unique identifier.
id required | string <uuid> |
{- "timestamp": "2025-04-03T10:00:00Z",
- "status": 400,
- "message": "An error occurred while processing the request.",
- "path": "/api/resource"
}
Change the details of an user by id.
id required | string <uuid> |
username | string [ 1 .. 100 ] characters The user's username. Username must be unique. |
string [ 1 .. 320 ] characters The user's email address, used for communication and login. | |
lastname | string [ 1 .. 100 ] characters The user's last name. |
firstname | string [ 1 .. 100 ] characters The user's first name. |
phonenumber | string or null [ 10 .. 20 ] characters ^\+?[0-9]{1,3}?[ \-]?\(?[0-9]{2,4}\)?[ \-]?[0... The user's phone number. Valid formats include:
|
object (Update Address) Represents the data required to update an address. |
{- "username": "JohnDoe123",
- "lastname": "Doe",
- "firstname": "John",
- "phonenumber": "+49 170 1234567",
- "address": {
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Berlin",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}
}
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "role": "USER",
- "lastname": "Doe",
- "firstname": "John",
- "phonenumber": "+49 170 1234567",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "address": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}
}
Retrieves the details of the currently authenticated user.
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "role": "USER",
- "lastname": "Doe",
- "firstname": "John",
- "phonenumber": "+49 170 1234567",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "address": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}
}
Change the details of the currently authenticated user.
username | string [ 1 .. 100 ] characters The user's username. Username must be unique. |
string [ 1 .. 320 ] characters The user's email address, used for communication and login. | |
lastname | string [ 1 .. 100 ] characters The user's last name. |
firstname | string [ 1 .. 100 ] characters The user's first name. |
phonenumber | string or null [ 10 .. 20 ] characters ^\+?[0-9]{1,3}?[ \-]?\(?[0-9]{2,4}\)?[ \-]?[0... The user's phone number. Valid formats include:
|
object (Update Address) Represents the data required to update an address. |
{- "username": "JohnDoe123",
- "lastname": "Doe",
- "firstname": "John",
- "phonenumber": "+49 170 1234567",
- "address": {
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Berlin",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}
}
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "role": "USER",
- "lastname": "Doe",
- "firstname": "John",
- "phonenumber": "+49 170 1234567",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "address": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}
}
Retrieves a paginated list of all users.
page | string or null Default: "0" Example: page=0 Page number for pagination. |
size | string or null <= 100 Default: "100" Example: size=100 Number of rides per page. |
{- "content": [
- {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9"
}
], - "pageable": {
- "paged": true,
- "pageNumber": 0,
- "pageSize": 0,
- "offset": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "unpaged": true
}, - "last": true,
- "totalPages": 0,
- "totalElements": 0,
- "first": true,
- "size": 0,
- "number": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "numberOfElements": 0,
- "empty": true
}
Updates the read status of a notification by its ID.
id required | string <uuid> |
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "user_id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "type": "RIDE",
- "message": "Ride 232342 was canceled.",
- "read": true
}
Fetches a single notification by its unique identifier.
id required | string <uuid> |
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "user_id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "type": "RIDE",
- "message": "Ride 232342 was canceled.",
- "read": true
}
Retrieves a list of notifications filtered by the provided parameters.
page | string or null Default: "0" Example: page=0 Page number for pagination. |
size | string or null <= 100 Default: "100" Example: size=100 Number of rides per page. |
read | string or null Default: "false" Example: read=true Read status of notifications. |
{- "content": [
- {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "user_id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "type": "RIDE",
- "message": "Ride 232342 was canceled.",
- "read": true
}
], - "pageable": {
- "paged": true,
- "pageNumber": 0,
- "pageSize": 0,
- "offset": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "unpaged": true
}, - "last": true,
- "totalPages": 0,
- "totalElements": 0,
- "first": true,
- "size": 0,
- "number": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "numberOfElements": 0,
- "empty": true
}
Retrieve a picture by its unique identifier.
id required | string <uuid> |
{- "timestamp": "2025-04-03T10:00:00Z",
- "status": 400,
- "message": "An error occurred while processing the request.",
- "path": "/api/resource"
}
Update a picture by its unique identifier.
id required | string <uuid> |
picture required | string <binary> |
{- "picture": "string"
}
{- "timestamp": "2025-04-03T10:00:00Z",
- "status": 400,
- "message": "An error occurred while processing the request.",
- "path": "/api/resource"
}
Retrieves a paginated list of all available rides.
page | string or null Default: "0" Example: page=0 Page number for pagination. |
size | string or null <= 100 Default: "100" Example: size=100 Number of rides per page. |
sortby | string or null Default: "departure" Example: sortby=departure Field by which results should be sorted (departure, created). |
sortdirection | string or null Default: "DESC" Example: sortdirection=DESC Sorting direction: ASC for ascending, DESC for descending (CASE SENSITIVE). |
status | string or null Example: status=ACTIVE Filter by status: PLANNED, ACTIVE, CANCELED, COMPLETED; (Default: All values) |
origincity | string or null Example: origincity=Berlin Search by origincity |
destinationcity | string or null Example: destinationcity=Wolfsburg Search by destinationcity |
username | string or null Example: username=sergej-stk Search by username of creator |
userid | string or null Example: userid=d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9 Search by id of creator |
{- "content": [
- {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "departure": "2025-03-02T14:30:00Z",
- "created": "2025-03-02T14:30:00Z",
- "driver": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9"
}, - "origin": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "destination": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "status": "PLANNED",
- "available_seats": 4
}
], - "pageable": {
- "paged": true,
- "pageNumber": 0,
- "pageSize": 0,
- "offset": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "unpaged": true
}, - "last": true,
- "totalPages": 0,
- "totalElements": 0,
- "first": true,
- "size": 0,
- "number": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "numberOfElements": 0,
- "empty": true
}
Creates a new ride based on the provided ride details.
object (Update Address) Represents the data required to update an address. | |
object (Update Address) Represents the data required to update an address. | |
departure | string <date-time> The planned departure time of the ride in UTC format. |
available_seats | integer <int32> The number of available seats for the ride. |
{- "origin": {
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Berlin",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "destination": {
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Berlin",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "departure": "2025-03-02T14:30:00Z",
- "available_seats": 4
}
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "departure": "2025-03-02T14:30:00Z",
- "created": "2025-03-02T14:30:00Z",
- "driver": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9"
}, - "origin": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "destination": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "status": "PLANNED",
- "available_seats": 4
}
Allows an authenticated user to join a ride by providing the ride ID.
id required | string <uuid> |
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "created": "2025-03-02T14:30:00Z"
}
Retrieves a single ride based on the provided ride ID.
id required | string <uuid> |
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "departure": "2025-03-02T14:30:00Z",
- "created": "2025-03-02T14:30:00Z",
- "driver": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9"
}, - "origin": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "destination": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "status": "PLANNED",
- "available_seats": 4
}
Deletes a ride based on the provided ride ID. Only admins can perform this action.
id required | string <uuid> |
{- "timestamp": "2025-04-03T10:00:00Z",
- "status": 400,
- "message": "An error occurred while processing the request.",
- "path": "/api/resource"
}
Retrieves a User list based on the provided ride ID.
id required | string <uuid> |
page | string or null Default: "0" Example: page=0 Page number for pagination. |
size | string or null <= 100 Default: "100" Example: size=100 Number of rides per page. |
{- "content": [
- {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9"
}
], - "pageable": {
- "paged": true,
- "pageNumber": 0,
- "pageSize": 0,
- "offset": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "unpaged": true
}, - "last": true,
- "totalPages": 0,
- "totalElements": 0,
- "first": true,
- "size": 0,
- "number": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "numberOfElements": 0,
- "empty": true
}
Retrieves a paginated list of rides that belong to the currently authenticated user.
page | string or null Default: "0" Example: page=0 Page number for pagination. |
size | string or null <= 100 Default: "100" Example: size=100 Number of rides per page. |
sortby | string or null Default: "departure" Example: sortby=departure Field by which results should be sorted (departure, created). |
sortdirection | string or null Default: "DESC" Example: sortdirection=DESC Sorting direction: ASC for ascending, DESC for descending (CASE SENSITIVE). |
status | string or null Example: status=ACTIVE Filter by status: PLANNED, ACTIVE, CANCELED, COMPLETED; (Default: All values) |
origincity | string or null Example: origincity=Berlin Search by origincity |
destinationcity | string or null Example: destinationcity=Wolfsburg Search by destinationcity |
username | string or null Example: username=sergej-stk Search by username of creator |
userid | string or null Example: userid=d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9 Search by id of creator |
{- "content": [
- {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "departure": "2025-03-02T14:30:00Z",
- "created": "2025-03-02T14:30:00Z",
- "driver": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9"
}, - "origin": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "destination": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}, - "status": "PLANNED",
- "available_seats": 4
}
], - "pageable": {
- "paged": true,
- "pageNumber": 0,
- "pageSize": 0,
- "offset": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "unpaged": true
}, - "last": true,
- "totalPages": 0,
- "totalElements": 0,
- "first": true,
- "size": 0,
- "number": 0,
- "sort": {
- "sorted": true,
- "empty": true,
- "unsorted": true
}, - "numberOfElements": 0,
- "empty": true
}
Delete a participant of a ride by user id and ride id.
rideid required | string <uuid> |
userid required | string <uuid> |
{- "timestamp": "2025-04-03T10:00:00Z",
- "status": 400,
- "message": "An error occurred while processing the request.",
- "path": "/api/resource"
}
Allows an authenticated user to leave a ride they have joined.
id required | string <uuid> |
{- "timestamp": "2025-04-03T10:00:00Z",
- "status": 400,
- "message": "An error occurred while processing the request.",
- "path": "/api/resource"
}
Deletes a ride that belongs to the currently authenticated user based on the provided ride ID.
id required | string <uuid> |
{- "timestamp": "2025-04-03T10:00:00Z",
- "status": 400,
- "message": "An error occurred while processing the request.",
- "path": "/api/resource"
}
Creates a new user account based on the provided information.
username required | string [ 1 .. 100 ] characters The user's username. |
email required | string [ 1 .. 320 ] characters The user's email address, used for communication and login. |
terms_accepted required | boolean |
password required | string [ 1 .. 255 ] characters The user's password, used for login. |
lastname | string [ 1 .. 100 ] characters The user's last name. |
firstname | string [ 1 .. 100 ] characters The user's first name. |
{- "username": "JohnDoe123",
- "terms_accepted": true,
- "password": "your-secret-password",
- "lastname": "Doe",
- "firstname": "John"
}
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "role": "USER",
- "lastname": "Doe",
- "firstname": "John",
- "phonenumber": "+49 170 1234567",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "address": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}
}
Sends a password reset email if the provided email is registered.
email required | string [ 1 .. 320 ] characters The user's email address, used for communication and login. |
{- "email": "[email protected]"
}
{- "timestamp": "2025-04-03T10:00:00Z",
- "status": 400,
- "message": "An error occurred while processing the request.",
- "path": "/api/resource"
}
Resets password of a user.
token required | string The password token used for password reset requests. |
password required | string [ 1 .. 255 ] characters The user's password, used for login. |
{- "token": "eyJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiUEFTU1dPUkRfUkVTRVQiLCJzdWIiOiJTZXJnZWpTdGVpbnNpZWtAZ21haWwuY29tIiwiaWF0IjoxNzM5NzM1OTY5LCJleHAiOjE3Mzk3MzY4Njl9.81v1aBWtMcwIMkSDg-Z4ncjdiIMspuGMIaruc0qwloU",
- "password": "your-secret-password"
}
{- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "username": "JohnDoe123",
- "role": "USER",
- "lastname": "Doe",
- "firstname": "John",
- "phonenumber": "+49 170 1234567",
- "picture": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "address": {
- "id": "d9b9c5e2-5d98-4e29-8887-cbe3b2b6a5a9",
- "street": "Main Street",
- "house_number": "42A",
- "postal_code": "12345",
- "city": "Munich",
- "country": "Germany",
- "coordinates": {
- "latitude": 48.137154,
- "longitude": 11.576124
}
}
}
Authenticates the user based on the provided login credentials.
email required | string [ 1 .. 320 ] characters The user's email address, used for communication and login. |
password required | string [ 1 .. 255 ] characters The user's password, used for login. |
{- "password": "your-secret-password"
}
{- "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJKb2huRG9lQGV4YW1wbGVtYWlsLmNvbSIsImlhdCI6MTczOTM0MzgzOSwiZXhwIjoxNzM5MzQ3NDM5fQ.TkD-9OSm8EoD5AVTBnWF-ABuh7MQFxbz_sFrgd2XE1A",
- "token_type": "Bearer",
- "expires_in": 3600000
}