Lotlytics OpenAPI Documentation (v1.0.0)

Download OpenAPI specification:

The Lotlytics API is a RESTful service that provides programmatic access to the resources and data used by the Lotlytics platform.

It is organized around several primary endpoints:

  • /lot — Manage and retrieve parking lot resources.
  • /group — Access and manage parking lot group resources.
  • /group/member — Manage group members and their roles.
  • /role — Manage roles that can be assigned to group members.
  • /event — Create, and record event data.
  • /user — Manage user accounts and authentication.

All endpoints follow RESTful principles and are stateless, ensuring predictable, consistent, and scalable interactions.

/lot

getAllLots

query Parameters
groupId
required
string
lotId
integer <int32>

Responses

Response samples

Content type
application/json
Example
[ ]

putLot

query Parameters
groupId
required
string
lotId
required
integer <int32>
Request Body schema: application/json
required
name
string [ 0 .. 255 ] characters
capacity
integer <int32>
volume
integer <int32>
street
string <= 255 characters

The street the parking lot is on.

city
string <= 255 characters

The city the parking lot is in.

state
string <= 255 characters

The state the parking lot is in.

zip
string <= 20 characters

The zip code the parking lot is in.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "capacity": 0,
  • "volume": 0,
  • "street": "123 Main Street",
  • "city": "Newark",
  • "state": "New Jersey",
  • "zip": "07102"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Downtown Garage",
  • "groupId": "GRP-001",
  • "currentVolume": 45,
  • "capacity": 100,
  • "street": "123 Main Street",
  • "city": "Newark",
  • "state": "New Jersey",
  • "zip": "07102",
  • "createdAt": "2025-10-11T14:23:00Z",
  • "updatedAt": "2025-10-11T17:45:00Z"
}

postLot

query Parameters
groupId
required
string
Request Body schema: application/json
required
name
string [ 0 .. 255 ] characters
capacity
integer <int32>
volume
integer <int32>
street
string <= 255 characters

The street the parking lot is on.

city
string <= 255 characters

The city the parking lot is in.

state
string <= 255 characters

The state the parking lot is in.

zip
string <= 20 characters

The zip code the parking lot is in.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "capacity": 0,
  • "volume": 0,
  • "street": "123 Main Street",
  • "city": "Newark",
  • "state": "New Jersey",
  • "zip": "07102"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Downtown Garage",
  • "groupId": "GRP-001",
  • "currentVolume": 45,
  • "capacity": 100,
  • "street": "123 Main Street",
  • "city": "Newark",
  • "state": "New Jersey",
  • "zip": "07102",
  • "createdAt": "2025-10-11T14:23:00Z",
  • "updatedAt": "2025-10-11T17:45:00Z"
}

deleteAllLots

query Parameters
groupId
required
string
lotId
required
integer <int32>

Responses

/group

getAllGroups

query Parameters
name
required
string

Responses

Response samples

Content type
application/json
Example
[ ]

createGroup

Request Body schema: application/json
required
name
string [ 0 .. 246 ] characters

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": "city-lots-3erdfga0",
  • "name": "Downtown Parking Group"
}

deleteGroup

query Parameters
groupId
required
string

Responses

getGroupMembers

query Parameters
groupId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

createGroupMember

query Parameters
groupId
required
string
Request Body schema: application/json
required
userId
required
integer <int32>

The ID of the user to add as a group member.

roleId
required
integer <int32>

The ID of the role to assign to the user.

Responses

Request samples

Content type
application/json
{
  • "userId": 1,
  • "roleId": 2
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "groupId": "city-lots-3erdfga0",
  • "userId": 1,
  • "roleId": 2
}

putGroupMember

query Parameters
groupId
required
string
userId
required
integer <int32>
Request Body schema: application/json
required
roleId
required
integer <int32>

The ID of the role to assign to the user.

Responses

Request samples

Content type
application/json
{
  • "roleId": 2
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "groupId": "city-lots-3erdfga0",
  • "userId": 1,
  • "roleId": 2
}

deleteGroupMember

query Parameters
groupId
required
string
userId
required
integer <int32>

Responses

/role

getRoles

query Parameters
name
string

Responses

Response samples

Content type
application/json
Example
[ ]

createRole

Request Body schema: application/json
required
name
required
string <= 255 characters

The name of the role.

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Administrator",
  • "createdAt": "2025-10-11T14:23:00Z"
}

deleteRole

query Parameters
id
required
integer <int32>

Responses

/event

getGroupEvents

query Parameters
groupId
required
string
lotId
required
integer <int32>

Responses

Response samples

Content type
application/json
Example
[ ]

createLotEvent

query Parameters
groupId
required
string
lotId
required
integer <int32>
Request Body schema: application/json
required
value
integer <int32>
capturedAt
string

Responses

Request samples

Content type
application/json
{
  • "value": 0,
  • "capturedAt": "string"
}

Response samples

Content type
application/json
{
  • "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  • "lotId": 12,
  • "groupId": "city-lots-3erdfga0",
  • "value": 1,
  • "capturedAt": "2025-10-11T18:42:00Z"
}

Debugging

index

Responses

Response samples

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