Husvo

API-referens

Avtalen

El, bredband, försäkring och andra avtal, med bindningstid och uppsägning.

Husets avtal med sista uppsägningsdag, läge och årskostnad. De som snart ska sägas upp kommer först

GET /api/v1/houses/{houseId}/contracts

operationId listContracts

  • Bearer-token
  • Kräver läsrätt i huset

Parametrar

NamnVarTypKrävs
houseId adressen integer ja

Exempel

curl -X GET "https://husvo.app/api/v1/houses/1/contracts" \
  -H "Authorization: Bearer $TOKEN"

Svar

200 Klart · ContractListResponse
{
  "items": [
    {
      "id": 1,
      "kind": "text",
      "kindLabel": "text",
      "provider": "text",
      "name": "text",
      "costKr": 1,
      "costPeriod": "text",
      "yearlyKr": 1,
      "startedAt": "2026-11-13",
      "endsAt": "2026-11-13",
      "noticeMonths": 1,
      "lastNoticeDay": "2026-11-13",
      "daysLeft": 1,
      "state": "text",
      "stateLabel": "text",
      "notes": "text",
      "applianceId": 1,
      "applianceName": "text",
      "createdAt": "2026-11-13T08:00:00Z"
    }
  ],
  "totalYearlyKr": 1,
  "windowDays": 1
}

Fel, som problem+json (felkoderna):

  • 404Finns inte, eller inte för dig

Lägg till ett avtal. Utan slutdatum löper det tills vidare

POST /api/v1/houses/{houseId}/contracts

operationId addContract

  • Bearer-token
  • Kräver redigeringsrätt i huset
  • Skrivtaket gäller
  • Tar Idempotency-Key

Parametrar

NamnVarTypKrävs
houseId adressen integer ja

Kropp application/json · AddContractBody

FältTypKrävs
kind string nej
provider string nej
costKr integer nej
costPeriod string nej
startedAt datum nej
endsAt datum nej
bindingMonths integer nej
noticeMonths integer nej
notes string nej
applianceId integer nej
{
  "kind": "text",
  "provider": "text",
  "costKr": 1,
  "costPeriod": "text",
  "startedAt": "2026-11-13",
  "endsAt": "2026-11-13",
  "bindingMonths": 1,
  "noticeMonths": 1,
  "notes": "text",
  "applianceId": 1
}

Exempel

curl -X POST "https://husvo.app/api/v1/houses/1/contracts" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"kind":"text","provider":"text","costKr":1,"costPeriod":"text","startedAt":"2026-11-13","endsAt":"2026-11-13","bindingMonths":1,"noticeMonths":1,"notes":"text","applianceId":1}'

Svar

201 Skapad · ContractDto
{
  "id": 1,
  "kind": "text",
  "kindLabel": "text",
  "provider": "text",
  "name": "text",
  "costKr": 1,
  "costPeriod": "text",
  "yearlyKr": 1,
  "startedAt": "2026-11-13",
  "endsAt": "2026-11-13",
  "noticeMonths": 1,
  "lastNoticeDay": "2026-11-13",
  "daysLeft": 1,
  "state": "text",
  "stateLabel": "text",
  "notes": "text",
  "applianceId": 1,
  "applianceName": "text",
  "createdAt": "2026-11-13T08:00:00Z"
}

Fel, som problem+json (felkoderna):

  • 403Inte tillåtet
  • 404Finns inte, eller inte för dig
  • 422Kontrollera uppgifterna

Ett avtal med sista uppsägningsdag, läge och årskostnad

GET /api/v1/houses/{houseId}/contracts/{contractId}

operationId getContract

  • Bearer-token
  • Kräver läsrätt i huset

Parametrar

NamnVarTypKrävs
houseId adressen integer ja
contractId adressen integer ja

Exempel

curl -X GET "https://husvo.app/api/v1/houses/1/contracts/1" \
  -H "Authorization: Bearer $TOKEN"

Svar

200 Klart · ContractDto
{
  "id": 1,
  "kind": "text",
  "kindLabel": "text",
  "provider": "text",
  "name": "text",
  "costKr": 1,
  "costPeriod": "text",
  "yearlyKr": 1,
  "startedAt": "2026-11-13",
  "endsAt": "2026-11-13",
  "noticeMonths": 1,
  "lastNoticeDay": "2026-11-13",
  "daysLeft": 1,
  "state": "text",
  "stateLabel": "text",
  "notes": "text",
  "applianceId": 1,
  "applianceName": "text",
  "createdAt": "2026-11-13T08:00:00Z"
}

Fel, som problem+json (felkoderna):

  • 404Finns inte, eller inte för dig

Ändra ett avtal. Fält som utelämnas lämnas orörda; clear-fälten tar bort ett värde

PATCH /api/v1/houses/{houseId}/contracts/{contractId}

operationId updateContract

  • Bearer-token
  • Kräver redigeringsrätt i huset
  • Skrivtaket gäller

Parametrar

NamnVarTypKrävs
houseId adressen integer ja
contractId adressen integer ja

Kropp application/json · PatchContractBody

FältTypKrävs
kind string nej
provider string nej
costKr integer nej
costPeriod string nej
startedAt datum nej
endsAt datum nej
bindingMonths integer nej
noticeMonths integer nej
notes string nej
applianceId integer nej
clearCost boolean nej
clearStartedAt boolean nej
clearEndsAt boolean nej
clearAppliance boolean nej
{
  "kind": "text",
  "provider": "text",
  "costKr": 1,
  "costPeriod": "text",
  "startedAt": "2026-11-13",
  "endsAt": "2026-11-13",
  "bindingMonths": 1,
  "noticeMonths": 1,
  "notes": "text",
  "applianceId": 1,
  "clearCost": false,
  "clearStartedAt": false,
  "clearEndsAt": false,
  "clearAppliance": false
}

Exempel

curl -X PATCH "https://husvo.app/api/v1/houses/1/contracts/1" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"kind":"text","provider":"text","costKr":1,"costPeriod":"text","startedAt":"2026-11-13","endsAt":"2026-11-13","bindingMonths":1,"noticeMonths":1,"notes":"text","applianceId":1,"clearCost":false,"clearStartedAt":false,"clearEndsAt":false,"clearAppliance":false}'

Svar

200 Klart · ContractDto
{
  "id": 1,
  "kind": "text",
  "kindLabel": "text",
  "provider": "text",
  "name": "text",
  "costKr": 1,
  "costPeriod": "text",
  "yearlyKr": 1,
  "startedAt": "2026-11-13",
  "endsAt": "2026-11-13",
  "noticeMonths": 1,
  "lastNoticeDay": "2026-11-13",
  "daysLeft": 1,
  "state": "text",
  "stateLabel": "text",
  "notes": "text",
  "applianceId": 1,
  "applianceName": "text",
  "createdAt": "2026-11-13T08:00:00Z"
}

Fel, som problem+json (felkoderna):

  • 403Inte tillåtet
  • 404Finns inte, eller inte för dig
  • 422Kontrollera uppgifterna

Tar bort avtalet. Det går inte att ångra, så fråga i appen först

DELETE /api/v1/houses/{houseId}/contracts/{contractId}

operationId deleteContract

  • Bearer-token
  • Kräver redigeringsrätt i huset
  • Skrivtaket gäller

Parametrar

NamnVarTypKrävs
houseId adressen integer ja
contractId adressen integer ja

Exempel

curl -X DELETE "https://husvo.app/api/v1/houses/1/contracts/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
Sidan hakade upp sig.Ladda om🗙