GET
/api/v1/houses/{houseId}/maintenance
operationId listMaintenance
- Bearer-token
- Kräver läsrätt i huset
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
Exempel
curl -X GET "https://husvo.app/api/v1/houses/1/maintenance" \
-H "Authorization: Bearer $TOKEN"
Svar
200 Klart · MaintListResponse
{
"items": [
{
"id": 1,
"name": "text",
"intervalMonths": 1,
"intervalLabel": "text",
"lastDoneAt": "2026-11-13",
"nextDueAt": "2026-11-13",
"daysLeft": 1,
"state": "text",
"dueLabel": "text",
"source": "text",
"isGuideline": false,
"applianceId": 1,
"applianceName": "text",
"once": false,
"editable": false,
"roomId": 1,
"roomName": "text",
"note": "text",
"assigneeId": 1
}
]
}
Fel, som problem+json (felkoderna):
- 404Finns inte, eller inte för dig
POST
/api/v1/houses/{houseId}/maintenance
operationId createMaintenanceItem
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
- Tar Idempotency-Key
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
Kropp application/json · CreateMaintBody
| Fält | Typ | Krävs |
name |
string |
nej |
dueOn |
datum |
nej |
intervalMonths |
integer |
nej |
roomId |
integer |
nej |
applianceId |
integer |
nej |
note |
string |
nej |
{
"name": "text",
"dueOn": "2026-11-13",
"intervalMonths": 1,
"roomId": 1,
"applianceId": 1,
"note": "text"
}
Exempel
curl -X POST "https://husvo.app/api/v1/houses/1/maintenance" \
-H "Authorization: Bearer $TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"name":"text","dueOn":"2026-11-13","intervalMonths":1,"roomId":1,"applianceId":1,"note":"text"}'
Svar
201 Skapad · MaintItemDto
{
"id": 1,
"name": "text",
"intervalMonths": 1,
"intervalLabel": "text",
"lastDoneAt": "2026-11-13",
"nextDueAt": "2026-11-13",
"daysLeft": 1,
"state": "text",
"dueLabel": "text",
"source": "text",
"isGuideline": false,
"applianceId": 1,
"applianceName": "text",
"once": false,
"editable": false,
"roomId": 1,
"roomName": "text",
"note": "text",
"assigneeId": 1
}
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig
- 422Kontrollera uppgifterna
GET
/api/v1/houses/{houseId}/maintenance/{maintId}
operationId getMaintenanceItem
- Bearer-token
- Kräver läsrätt i huset
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
maintId |
adressen |
integer |
ja |
Exempel
curl -X GET "https://husvo.app/api/v1/houses/1/maintenance/1" \
-H "Authorization: Bearer $TOKEN"
Svar
200 Klart · MaintItemDto
{
"id": 1,
"name": "text",
"intervalMonths": 1,
"intervalLabel": "text",
"lastDoneAt": "2026-11-13",
"nextDueAt": "2026-11-13",
"daysLeft": 1,
"state": "text",
"dueLabel": "text",
"source": "text",
"isGuideline": false,
"applianceId": 1,
"applianceName": "text",
"once": false,
"editable": false,
"roomId": 1,
"roomName": "text",
"note": "text",
"assigneeId": 1
}
Fel, som problem+json (felkoderna):
- 404Finns inte, eller inte för dig
PATCH
/api/v1/houses/{houseId}/maintenance/{maintId}
operationId updateMaintenanceItem
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
maintId |
adressen |
integer |
ja |
Kropp application/json · UpdateMaintBody
| Fält | Typ | Krävs |
name |
string |
nej |
intervalMonths |
integer |
nej |
dueOn |
datum |
nej |
note |
string |
nej |
roomId |
integer |
nej |
clearRoom |
boolean |
nej |
applianceId |
integer |
nej |
clearAppliance |
boolean |
nej |
{
"name": "text",
"intervalMonths": 1,
"dueOn": "2026-11-13",
"note": "text",
"roomId": 1,
"clearRoom": false,
"applianceId": 1,
"clearAppliance": false
}
Exempel
curl -X PATCH "https://husvo.app/api/v1/houses/1/maintenance/1" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"text","intervalMonths":1,"dueOn":"2026-11-13","note":"text","roomId":1,"clearRoom":false,"applianceId":1,"clearAppliance":false}'
Svar
200 Klart · MaintItemDto
{
"id": 1,
"name": "text",
"intervalMonths": 1,
"intervalLabel": "text",
"lastDoneAt": "2026-11-13",
"nextDueAt": "2026-11-13",
"daysLeft": 1,
"state": "text",
"dueLabel": "text",
"source": "text",
"isGuideline": false,
"applianceId": 1,
"applianceName": "text",
"once": false,
"editable": false,
"roomId": 1,
"roomName": "text",
"note": "text",
"assigneeId": 1
}
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig
- 422Kontrollera uppgifterna
DELETE
/api/v1/houses/{houseId}/maintenance/{maintId}
operationId deleteMaintenanceItem
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
maintId |
adressen |
integer |
ja |
Exempel
curl -X DELETE "https://husvo.app/api/v1/houses/1/maintenance/1" \
-H "Authorization: Bearer $TOKEN"
Svar
204 Klart, inget innehåll
Inget innehåll.
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig
- 422Kontrollera uppgifterna
POST
/api/v1/houses/{houseId}/maintenance/{maintId}/done
operationId markMaintenanceDone
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
maintId |
adressen |
integer |
ja |
Kropp application/json · MarkDoneBody
| Fält | Typ | Krävs |
doneOn |
datum |
nej |
costKr |
integer |
nej |
{
"doneOn": "2026-11-13",
"costKr": 1
}
Exempel
curl -X POST "https://husvo.app/api/v1/houses/1/maintenance/1/done" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"doneOn":"2026-11-13","costKr":1}'
Svar
200 Klart · MarkDoneResponse
{
"item": {
"id": 1,
"name": "text",
"intervalMonths": 1,
"intervalLabel": "text",
"lastDoneAt": "2026-11-13",
"nextDueAt": "2026-11-13",
"daysLeft": 1,
"state": "text",
"dueLabel": "text",
"source": "text",
"isGuideline": false,
"applianceId": 1,
"applianceName": "text",
"once": false,
"editable": false,
"roomId": 1,
"roomName": "text",
"note": "text",
"assigneeId": 1
},
"logEntry": {
"id": 1,
"date": "2026-11-13",
"what": "text",
"component": "text",
"kind": "text",
"costKr": 1,
"isImprovement": false,
"contractor": "text",
"phone": "text",
"warrantyUntil": "2026-11-13",
"buildingPart": "text",
"authorName": "text",
"hasReceipt": false,
"receiptPhotoId": 1,
"craftsmanId": 1,
"craftsmanName": "text"
},
"removed": false
}
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig
- 422Kontrollera uppgifterna
PUT
/api/v1/houses/{houseId}/maintenance/{maintId}/last-done
operationId setMaintenanceLastDone
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
maintId |
adressen |
integer |
ja |
Kropp application/json · LastDoneBody
| Fält | Typ | Krävs |
date |
datum |
nej |
{
"date": "2026-11-13"
}
Exempel
curl -X PUT "https://husvo.app/api/v1/houses/1/maintenance/1/last-done" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"date":"2026-11-13"}'
Svar
200 Klart · MaintItemDto
{
"id": 1,
"name": "text",
"intervalMonths": 1,
"intervalLabel": "text",
"lastDoneAt": "2026-11-13",
"nextDueAt": "2026-11-13",
"daysLeft": 1,
"state": "text",
"dueLabel": "text",
"source": "text",
"isGuideline": false,
"applianceId": 1,
"applianceName": "text",
"once": false,
"editable": false,
"roomId": 1,
"roomName": "text",
"note": "text",
"assigneeId": 1
}
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig
- 422Kontrollera uppgifterna
PUT
/api/v1/houses/{houseId}/maintenance/{maintId}/assignee
operationId setMaintenanceAssignee
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
maintId |
adressen |
integer |
ja |
Kropp application/json · AssigneeBody
| Fält | Typ | Krävs |
assigneeId |
integer |
nej |
{
"assigneeId": 1
}
Exempel
curl -X PUT "https://husvo.app/api/v1/houses/1/maintenance/1/assignee" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"assigneeId":1}'
Svar
200 Klart · MaintItemDto
{
"id": 1,
"name": "text",
"intervalMonths": 1,
"intervalLabel": "text",
"lastDoneAt": "2026-11-13",
"nextDueAt": "2026-11-13",
"daysLeft": 1,
"state": "text",
"dueLabel": "text",
"source": "text",
"isGuideline": false,
"applianceId": 1,
"applianceName": "text",
"once": false,
"editable": false,
"roomId": 1,
"roomName": "text",
"note": "text",
"assigneeId": 1
}
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig
- 422Kontrollera uppgifterna
GET
/api/v1/houses/{houseId}/suggestions
operationId listMaintenanceSuggestions
- Bearer-token
- Kräver läsrätt i huset
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
Exempel
curl -X GET "https://husvo.app/api/v1/houses/1/suggestions" \
-H "Authorization: Bearer $TOKEN"
Svar
200 Klart · SuggestionListResponse
{
"items": [
{
"libraryId": "abc123",
"name": "text",
"intervalMonths": 1,
"intervalLabel": "text"
}
]
}
Fel, som problem+json (felkoderna):
- 404Finns inte, eller inte för dig
POST
/api/v1/houses/{houseId}/suggestions/{libraryId}/accept
operationId acceptMaintenanceSuggestion
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
- Tar Idempotency-Key
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
libraryId |
adressen |
string |
ja |
Exempel
curl -X POST "https://husvo.app/api/v1/houses/1/suggestions/1/accept" \
-H "Authorization: Bearer $TOKEN" \
-H "Idempotency-Key: $(uuidgen)"
Svar
201 Skapad · MaintItemDto
{
"id": 1,
"name": "text",
"intervalMonths": 1,
"intervalLabel": "text",
"lastDoneAt": "2026-11-13",
"nextDueAt": "2026-11-13",
"daysLeft": 1,
"state": "text",
"dueLabel": "text",
"source": "text",
"isGuideline": false,
"applianceId": 1,
"applianceName": "text",
"once": false,
"editable": false,
"roomId": 1,
"roomName": "text",
"note": "text",
"assigneeId": 1
}
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig
POST
/api/v1/houses/{houseId}/suggestions/{libraryId}/dismiss
operationId dismissMaintenanceSuggestion
- Bearer-token
- Kräver redigeringsrätt i huset
- Skrivtaket gäller
Parametrar
| Namn | Var | Typ | Krävs |
houseId |
adressen |
integer |
ja |
libraryId |
adressen |
string |
ja |
Exempel
curl -X POST "https://husvo.app/api/v1/houses/1/suggestions/1/dismiss" \
-H "Authorization: Bearer $TOKEN"
Svar
204 Klart, inget innehåll
Inget innehåll.
Fel, som problem+json (felkoderna):
- 403Inte tillåtet
- 404Finns inte, eller inte för dig