Parking Lot API Guide
GET /v1/parking-lots
Query Parameters
| Parameter | Type | Optional | Description |
|---|---|---|---|
parentServicePointSloids |
Array[String] |
true |
|
servicePointNumbers |
Array[Integer] |
true |
|
sloids |
Array[String] |
true |
|
statusRestrictions |
Array[String] |
true |
Must be one of ["DRAFT","VALIDATED","IN_REVIEW","WITHDRAWN","REVOKED"] |
createdAfter |
String |
true |
|
modifiedAfter |
String |
true |
|
validOn |
String |
true |
|
fromDate |
String |
true |
|
toDate |
String |
true |
|
validToFromDate |
String |
true |
|
page |
Integer |
true |
|
size |
Integer |
true |
|
sort |
Array[String] |
true |
Example request
$ curl 'http://localhost:8080/v1/parking-lots' -i -X GET
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 717
{
"objects" : [ {
"additionalInformation" : "Additional information",
"creationDate" : "2026-03-30T09:40:23.961392",
"creator" : "e123456",
"designation" : "Designation",
"editionDate" : "2026-03-30T09:40:23.961404",
"editor" : "e123456",
"etagVersion" : 0,
"id" : 1022,
"number" : {
"checkDigit" : 8,
"number" : 1234567,
"numberShort" : 34567,
"uicCountryCode" : 12
},
"parentServicePointSloid" : "ch:1:sloid:12345",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : "VALIDATED",
"validFrom" : "2000-01-01",
"validTo" : "2000-12-31"
} ],
"totalCount" : 1
}
Get Parking Lot Versions - Successfully
GET /v1/parking-lots/ch:1:sloid:12345:1
Path Variables
| Path Variable | Type | Optional | Description |
|---|---|---|---|
sloid |
String |
false |
Example request
$ curl 'http://localhost:8080/v1/parking-lots/ch:1:sloid:12345:1' -i -X GET
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 635
[ {
"additionalInformation" : "Additional information",
"creationDate" : "2026-03-30T09:40:23.565959",
"creator" : "e123456",
"designation" : "Designation",
"editionDate" : "2026-03-30T09:40:23.565975",
"editor" : "e123456",
"etagVersion" : 0,
"id" : 1016,
"number" : {
"checkDigit" : 8,
"number" : 1234567,
"numberShort" : 34567,
"uicCountryCode" : 12
},
"parentServicePointSloid" : "ch:1:sloid:12345",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : "VALIDATED",
"validFrom" : "2000-01-01",
"validTo" : "2000-12-31"
} ]
Get Parking Lot Versions with filter - Successfully
GET /v1/parking-lots
Query Parameters
| Parameter | Type | Optional | Description |
|---|---|---|---|
parentServicePointSloids |
Array[String] |
true |
|
servicePointNumbers |
Array[Integer] |
true |
|
sloids |
Array[String] |
true |
|
statusRestrictions |
Array[String] |
true |
Must be one of ["DRAFT","VALIDATED","IN_REVIEW","WITHDRAWN","REVOKED"] |
createdAfter |
String |
true |
|
modifiedAfter |
String |
true |
|
validOn |
String |
true |
|
fromDate |
String |
true |
|
toDate |
String |
true |
|
validToFromDate |
String |
true |
|
page |
Integer |
true |
|
size |
Integer |
true |
|
sort |
Array[String] |
true |
Example request
$ curl 'http://localhost:8080/v1/parking-lots?numbers=12345&sloids=ch:1:sloid:12345:1&statusRestrictions=VALIDATED&fromDate=2000-01-01&toDate=2000-12-31&validOn=2000-06-28&createdAfter=2026-03-30%2009:40:22&modifiedAfter=2026-03-30%2009:40:23' -i -X GET
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 717
{
"objects" : [ {
"additionalInformation" : "Additional information",
"creationDate" : "2026-03-30T09:40:23.822982",
"creator" : "e123456",
"designation" : "Designation",
"editionDate" : "2026-03-30T09:40:23.822996",
"editor" : "e123456",
"etagVersion" : 0,
"id" : 1021,
"number" : {
"checkDigit" : 8,
"number" : 1234567,
"numberShort" : 34567,
"uicCountryCode" : 12
},
"parentServicePointSloid" : "ch:1:sloid:12345",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : "VALIDATED",
"validFrom" : "2000-01-01",
"validTo" : "2000-12-31"
} ],
"totalCount" : 1
}
Get Parking Lot Versions with sloid array filter - Successfully
GET /v1/parking-lots
Query Parameters
| Parameter | Type | Optional | Description |
|---|---|---|---|
parentServicePointSloids |
Array[String] |
true |
|
servicePointNumbers |
Array[Integer] |
true |
|
sloids |
Array[String] |
true |
|
statusRestrictions |
Array[String] |
true |
Must be one of ["DRAFT","VALIDATED","IN_REVIEW","WITHDRAWN","REVOKED"] |
createdAfter |
String |
true |
|
modifiedAfter |
String |
true |
|
validOn |
String |
true |
|
fromDate |
String |
true |
|
toDate |
String |
true |
|
validToFromDate |
String |
true |
|
page |
Integer |
true |
|
size |
Integer |
true |
|
sort |
Array[String] |
true |
Example request
$ curl 'http://localhost:8080/v1/parking-lots?numbers=12345&sloids=ch:1:sloid:12345:1&sloids=ch:1:sloid:54321&fromDate=2000-01-01&toDate=2000-12-31&validOn=2000-06-28&createdAfter=2026-03-30%2009:40:22&modifiedAfter=2026-03-30%2009:40:23' -i -X GET
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 717
{
"objects" : [ {
"additionalInformation" : "Additional information",
"creationDate" : "2026-03-30T09:40:23.489738",
"creator" : "e123456",
"designation" : "Designation",
"editionDate" : "2026-03-30T09:40:23.489753",
"editor" : "e123456",
"etagVersion" : 0,
"id" : 1015,
"number" : {
"checkDigit" : 8,
"number" : 1234567,
"numberShort" : 34567,
"uicCountryCode" : 12
},
"parentServicePointSloid" : "ch:1:sloid:12345",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : "VALIDATED",
"validFrom" : "2000-01-01",
"validTo" : "2000-12-31"
} ],
"totalCount" : 1
}
Get Parking Lot Versions with sloid filter - Successfully
GET /v1/parking-lots
Query Parameters
| Parameter | Type | Optional | Description |
|---|---|---|---|
parentServicePointSloids |
Array[String] |
true |
|
servicePointNumbers |
Array[Integer] |
true |
|
sloids |
Array[String] |
true |
|
statusRestrictions |
Array[String] |
true |
Must be one of ["DRAFT","VALIDATED","IN_REVIEW","WITHDRAWN","REVOKED"] |
createdAfter |
String |
true |
|
modifiedAfter |
String |
true |
|
validOn |
String |
true |
|
fromDate |
String |
true |
|
toDate |
String |
true |
|
validToFromDate |
String |
true |
|
page |
Integer |
true |
|
size |
Integer |
true |
|
sort |
Array[String] |
true |
Example request
$ curl 'http://localhost:8080/v1/parking-lots?sloids=ch:1:sloid:12345:3' -i -X GET
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 41
{
"objects" : [ ],
"totalCount" : 0
}
Get Parking Lot Versions with number filter - Successfully
GET /v1/parking-lots
Query Parameters
| Parameter | Type | Optional | Description |
|---|---|---|---|
parentServicePointSloids |
Array[String] |
true |
|
servicePointNumbers |
Array[Integer] |
true |
|
sloids |
Array[String] |
true |
|
statusRestrictions |
Array[String] |
true |
Must be one of ["DRAFT","VALIDATED","IN_REVIEW","WITHDRAWN","REVOKED"] |
createdAfter |
String |
true |
|
modifiedAfter |
String |
true |
|
validOn |
String |
true |
|
fromDate |
String |
true |
|
toDate |
String |
true |
|
validToFromDate |
String |
true |
|
page |
Integer |
true |
|
size |
Integer |
true |
|
sort |
Array[String] |
true |
Example request
$ curl 'http://localhost:8080/v1/parking-lots?servicePointNumbers=1334567' -i -X GET
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 41
{
"objects" : [ ],
"totalCount" : 0
}
Get Parking Lot Versions with parentSloid filter - Successfully
GET /v1/parking-lots
Query Parameters
| Parameter | Type | Optional | Description |
|---|---|---|---|
parentServicePointSloids |
Array[String] |
true |
|
servicePointNumbers |
Array[Integer] |
true |
|
sloids |
Array[String] |
true |
|
statusRestrictions |
Array[String] |
true |
Must be one of ["DRAFT","VALIDATED","IN_REVIEW","WITHDRAWN","REVOKED"] |
createdAfter |
String |
true |
|
modifiedAfter |
String |
true |
|
validOn |
String |
true |
|
fromDate |
String |
true |
|
toDate |
String |
true |
|
validToFromDate |
String |
true |
|
page |
Integer |
true |
|
size |
Integer |
true |
|
sort |
Array[String] |
true |
Example request
$ curl 'http://localhost:8080/v1/parking-lots?parentServicePointSloids=ch:1:sloid:1234' -i -X GET
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 41
{
"objects" : [ ],
"totalCount" : 0
}
Get Parking Lot Overview - Successfully
GET /internal/parking-lots/overview/ch:1:sloid:12345
Path Variables
| Path Variable | Type | Optional | Description |
|---|---|---|---|
parentServicePointSloid |
String |
false |
Example request
$ curl 'http://localhost:8080/internal/parking-lots/overview/ch:1:sloid:12345' -i -X GET
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 545
[ {
"additionalInformation" : "Additional information",
"creationDate" : "2026-03-30T09:40:22.955842",
"creator" : "e123456",
"designation" : "Designation",
"editionDate" : "2026-03-30T09:40:22.955886",
"editor" : "e123456",
"etagVersion" : 0,
"id" : 1009,
"parentServicePointSloid" : "ch:1:sloid:12345",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"recordingStatus" : "INCOMPLETE",
"sloid" : "ch:1:sloid:12345:1",
"status" : null,
"validFrom" : "2000-01-01",
"validTo" : "2000-12-31"
} ]
Create Parking Lots - Successfully
POST /v1/parking-lots
Request Body Fields
| Path | Type | Optional | Description |
|---|---|---|---|
placesAvailable |
String |
false |
Must be one of ["TO_BE_COMPLETED","YES","NO"] |
prmPlacesAvailable |
String |
false |
Must be one of ["TO_BE_COMPLETED","YES","NO"] |
parentServicePointSloid |
String |
false |
Parent Service Point Sloid: Unique code for locations that is used in customer information. The structure is described in the “Swiss Location ID” specification, chapter 4.2. The document is available here: transportdatamanagement.ch/standards/ Example value: ch:1:sloid:18771 Length must be between 1 and 500 |
designation |
String |
false |
Long designation of a location. Used primarily in customer information. Not all systems can process names of this length. Example value: Biel/Bienne Bözingenfeld/Champs-de-Boujean Length must be between 0 and 50 |
additionalInformation |
String |
true |
Additional Information Length must be between 0 and 2000 |
sloid |
String |
true |
Unique code for locations that is used in customer information. The structure is described in the “Swiss Location ID” specification, chapter 4.2. The document is available here: transportdatamanagement.ch/standards/ Example value: ch:1:sloid:18771:1 Length must be between 1 and 500 |
id |
Integer |
true |
This ID helps identify versions of a prm object in the use case front end and/or update. This ID can be deleted if the version is no longer present. Do not use this ID to map your object to a prm object. To do this, use the sloid or parentServicePointSloid in combination with the data range (valid from/valid until). Example value: 1 |
validFrom |
String |
false |
Valid from |
validTo |
String |
false |
Valid to |
etagVersion |
Integer |
true |
Optimistic locking version - instead of ETag HTTP Header (see RFC7232:Section 2.3) Example value: 5 |
status |
String |
true |
Status Must be one of ["DRAFT","VALIDATED","IN_REVIEW","WITHDRAWN","REVOKED"] |
creationDate |
String |
true |
Object creation date Example value: 01.01.2000 |
creator |
String |
true |
User creator Example value: u123456 |
editionDate |
String |
true |
Last edition date Example value: 01.01.2000 |
editor |
String |
true |
User editor Example value: u123456 |
Example request
$ curl 'http://localhost:8080/v1/parking-lots' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-d '{
"additionalInformation" : "Additional information",
"creationDate" : null,
"creator" : null,
"designation" : "Designation",
"editionDate" : null,
"editor" : null,
"etagVersion" : null,
"id" : null,
"parentServicePointSloid" : "ch:1:sloid:7000",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : "VALIDATED",
"validFrom" : "2000-01-01",
"validTo" : "2000-12-31"
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 627
{
"additionalInformation" : "Additional information",
"creationDate" : "2026-03-30T09:40:23.37232",
"creator" : "e123456",
"designation" : "Designation",
"editionDate" : "2026-03-30T09:40:23.37234",
"editor" : "e123456",
"etagVersion" : 0,
"id" : 1014,
"number" : {
"checkDigit" : 3,
"number" : 8507000,
"numberShort" : 7000,
"uicCountryCode" : 85
},
"parentServicePointSloid" : "ch:1:sloid:7000",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : "VALIDATED",
"validFrom" : "2000-01-01",
"validTo" : "2000-12-31"
}
Create Parking Lots - Successfully
POST /v1/parking-lots
Request Body Fields
| Path | Type | Optional | Description |
|---|---|---|---|
placesAvailable |
String |
false |
Must be one of ["TO_BE_COMPLETED","YES","NO"] |
prmPlacesAvailable |
String |
false |
Must be one of ["TO_BE_COMPLETED","YES","NO"] |
parentServicePointSloid |
String |
false |
Parent Service Point Sloid: Unique code for locations that is used in customer information. The structure is described in the “Swiss Location ID” specification, chapter 4.2. The document is available here: transportdatamanagement.ch/standards/ Example value: ch:1:sloid:18771 Length must be between 1 and 500 |
designation |
String |
false |
Long designation of a location. Used primarily in customer information. Not all systems can process names of this length. Example value: Biel/Bienne Bözingenfeld/Champs-de-Boujean Length must be between 0 and 50 |
additionalInformation |
String |
true |
Additional Information Length must be between 0 and 2000 |
sloid |
String |
true |
Unique code for locations that is used in customer information. The structure is described in the “Swiss Location ID” specification, chapter 4.2. The document is available here: transportdatamanagement.ch/standards/ Example value: ch:1:sloid:18771:1 Length must be between 1 and 500 |
id |
Integer |
true |
This ID helps identify versions of a prm object in the use case front end and/or update. This ID can be deleted if the version is no longer present. Do not use this ID to map your object to a prm object. To do this, use the sloid or parentServicePointSloid in combination with the data range (valid from/valid until). Example value: 1 |
validFrom |
String |
false |
Valid from |
validTo |
String |
false |
Valid to |
etagVersion |
Integer |
true |
Optimistic locking version - instead of ETag HTTP Header (see RFC7232:Section 2.3) Example value: 5 |
status |
String |
true |
Status Must be one of ["DRAFT","VALIDATED","IN_REVIEW","WITHDRAWN","REVOKED"] |
creationDate |
String |
true |
Object creation date Example value: 01.01.2000 |
creator |
String |
true |
User creator Example value: u123456 |
editionDate |
String |
true |
Last edition date Example value: 01.01.2000 |
editor |
String |
true |
User editor Example value: u123456 |
Example request
$ curl 'http://localhost:8080/v1/parking-lots' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-d '{
"additionalInformation" : "Additional information",
"creationDate" : null,
"creator" : null,
"designation" : "Designation",
"editionDate" : null,
"editor" : null,
"etagVersion" : null,
"id" : null,
"parentServicePointSloid" : "ch:1:sloid:7000",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : "VALIDATED",
"validFrom" : "2000-01-01",
"validTo" : "2000-12-31"
}'
Example response
HTTP/1.1 412 Precondition Failed
Content-Type: application/json
Content-Length: 133
{
"status" : 412,
"message" : "The stop point with sloid ch:1:sloid:7000 does not exist.",
"error" : null,
"details" : null
}
Update Parking Lots - Successfully
PUT /v1/parking-lots/1018
Path Variables
| Path Variable | Type | Optional | Description |
|---|---|---|---|
id |
Integer |
false |
Request Body Fields
| Path | Type | Optional | Description |
|---|---|---|---|
placesAvailable |
String |
false |
Must be one of ["TO_BE_COMPLETED","YES","NO"] |
prmPlacesAvailable |
String |
false |
Must be one of ["TO_BE_COMPLETED","YES","NO"] |
parentServicePointSloid |
String |
false |
Parent Service Point Sloid: Unique code for locations that is used in customer information. The structure is described in the “Swiss Location ID” specification, chapter 4.2. The document is available here: transportdatamanagement.ch/standards/ Example value: ch:1:sloid:18771 Length must be between 1 and 500 |
designation |
String |
false |
Long designation of a location. Used primarily in customer information. Not all systems can process names of this length. Example value: Biel/Bienne Bözingenfeld/Champs-de-Boujean Length must be between 0 and 50 |
additionalInformation |
String |
true |
Additional Information Length must be between 0 and 2000 |
sloid |
String |
true |
Unique code for locations that is used in customer information. The structure is described in the “Swiss Location ID” specification, chapter 4.2. The document is available here: transportdatamanagement.ch/standards/ Example value: ch:1:sloid:18771:1 Length must be between 1 and 500 |
id |
Integer |
true |
This ID helps identify versions of a prm object in the use case front end and/or update. This ID can be deleted if the version is no longer present. Do not use this ID to map your object to a prm object. To do this, use the sloid or parentServicePointSloid in combination with the data range (valid from/valid until). Example value: 1 |
validFrom |
String |
false |
Valid from |
validTo |
String |
false |
Valid to |
etagVersion |
Integer |
true |
Optimistic locking version - instead of ETag HTTP Header (see RFC7232:Section 2.3) Example value: 5 |
status |
String |
true |
Status Must be one of ["DRAFT","VALIDATED","IN_REVIEW","WITHDRAWN","REVOKED"] |
creationDate |
String |
true |
Object creation date Example value: 01.01.2000 |
creator |
String |
true |
User creator Example value: u123456 |
editionDate |
String |
true |
Last edition date Example value: 01.01.2000 |
editor |
String |
true |
User editor Example value: u123456 |
Example request
$ curl 'http://localhost:8080/v1/parking-lots/1018' -i -X PUT \
-H 'Content-Type: application/json;charset=UTF-8' \
-d '{
"additionalInformation" : "Additional information",
"creationDate" : "2026-03-30T09:40:23.627001",
"creator" : "e123456",
"designation" : "Designation wrong",
"editionDate" : "2026-03-30T09:40:23.627019",
"editor" : "e123456",
"etagVersion" : 0,
"id" : null,
"parentServicePointSloid" : "ch:1:sloid:7000",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : null,
"validFrom" : "2001-01-01",
"validTo" : "2001-12-31"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1272
[ {
"additionalInformation" : "Additional information",
"creationDate" : "2026-03-30T09:40:23.615088",
"creator" : "e123456",
"designation" : "Designation",
"editionDate" : "2026-03-30T09:40:23.615107",
"editor" : "e123456",
"etagVersion" : 1,
"id" : 1017,
"number" : {
"checkDigit" : 8,
"number" : 1234567,
"numberShort" : 34567,
"uicCountryCode" : 12
},
"parentServicePointSloid" : "ch:1:sloid:7000",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : "VALIDATED",
"validFrom" : "2000-01-01",
"validTo" : "2000-12-31"
}, {
"additionalInformation" : "Additional information",
"creationDate" : "2026-03-30T09:40:23.627001",
"creator" : "e123456",
"designation" : "Designation wrong",
"editionDate" : "2026-03-30T09:40:23.653994",
"editor" : "e123456",
"etagVersion" : 2,
"id" : 1018,
"number" : {
"checkDigit" : 8,
"number" : 1234567,
"numberShort" : 34567,
"uicCountryCode" : 12
},
"parentServicePointSloid" : "ch:1:sloid:7000",
"placesAvailable" : "YES",
"prmPlacesAvailable" : "TO_BE_COMPLETED",
"sloid" : "ch:1:sloid:12345:1",
"status" : "VALIDATED",
"validFrom" : "2001-01-01",
"validTo" : "2001-12-31"
} ]