REST API
REST API kan ge dig information om växter och du kan uppdatera växter, samt söka i databasen. Det är fortfarande under uppbyggnad så fler funktioner kommer nog att komma under utvecklingens tid.
Använda API nyckeln
API nycken använder du i Authorization: Bearer-headern.
Växter
Hämta information från en växt
Du kan hämta information från växt genom ett GET anrop och du får tillbaka alla uppgifter om just den växten. Texten är som standard på engelska men du kan i din profil ställa in att du vill ha den på ditt valda språk. Då kommer dom förutom i engelska även levereras med en label på slutet med ditt valda språk. som exempel healthState skrivs ut i engelska men även en som heter healthStateLabel skriv ut i ditt valda språk. Nedan är ett svarsanrop som inkluderar svenska språket.
För att läsa en växt: GET /api/plants/1 där siffran 1 byts ut mot växtens id nummer, vilket du kan se när du är i en webbläsare.
{
"language": "sv",
"plant": {
"id": 1,
"name": "Roma Tomato",
"variety": "San Marzano",
"scientificName": "Solanum lycopersicum",
"floweringStartMonth": "May",
"floweringEndMonth": "September",
"harvestStartMonth": "May",
"harvestEndMonth": "September",
"sowingStartMonth": "May",
"sowingEndMonth": "September",
"color": "#e66100",
"mixedColors": false,
"areaId": 1,
"status": "Flowering",
"planted": "2026-03-18",
"photo": "/assets/plant-sample.jpg",
"galleryPhotos": [
"/assets/plant-sample.jpg"
],
"notes": "Updated through the REST API.",
"seedlingSowings": [
{
"id": 1783542817660,
"title": "Nr 1",
"count": 0,
"note": "Första",
"createdAt": "2026-07-08T20:33:37.660Z"
}
],
"assignedSeedBags": [],
"statistics": [
{
"id": 1783695549270,
"type": "fertilized",
"date": "2026-07-10"
},
{
"id": 1783608652069,
"type": "watered",
"date": "2026-07-09"
}
],
"lastWatered": "2026-07-09",
"daysBetweenWatering": 1,
"lastRepotted": "2026-03-20",
"lastFertilized": "2026-07-10",
"daysBetweenFertilizing": 13,
"lifespan": "Annual",
"cuttingMonth": "May",
"purchased": "2026-03-12",
"moistureLevel": 68,
"lightLevel": "Sunny",
"healthState": "Pest Infestation",
"statusLabel": "Blommar",
"lifespanLabel": "Ettårig",
"cuttingMonthLabel": "Maj",
"lightLevelLabel": "Soligt",
"healthStateLabel": "Skadedjursangrepp"
},
"area": {
"id": 1,
"name": "North Raised Beds",
"type": "Vegetable beds",
"sunlight": "Full sun",
"moisture": 72,
"locationId": 1,
"underRoof": false,
"notes": "Tomatoes, basil, and peppers. Add compost every other month.",
"typeLabel": "Grönsaksbäddar"
}
}
Uppdatera information om en växt
För att uppdatera information om en specifik växt använder du PATCH /api/plants/1 och byter ut siffran 1 mot det korrekta id numret. Sedan skickar du ett JSON anrop med det du behöver uppdatera på växten. I exemplet nedan så uppdaterar vi hälsotillstånd och senast vattnad, och när du uppdaterar så alla status strängar så är det engelska som gäller.
Växtdatabasen
Söka i databasen
Du kan söka i växtdatabasen för att få upp samtliga träffar på sökord. Det gör du med GET /api/plant-database?q=tomato och nedan kan du se hur ett svar kan se ut.
{
"query": "roma",
"total": 1,
"limit": 25,
"offset": 0,
"results": [
{
"id": 1,
"name": "Roma Tomato",
"variety": "San Marzano",
"scientificName": "Solanum lycopersicum",
"lifespan": "Annual",
"cuttingMonth": "May",
"lightLevel": "Sunny",
"customInfo": "Reliable paste tomato with rich flavor. Start indoors and transplant after frost danger has passed.",
"photo": "/assets/plant-sample.jpg",
"photos": [
"/assets/plant-sample.jpg"
],
"author": {
"id": 1,
"name": "Unknown"
},
"updatedAt": "2026-07-08T16:34:25.512Z",
"seedPacketLinksCount": 0
}
]
}
Information om växt i databasen
Du kan få upp växt information från en växt i databasen genom GET /api/plant-database/1 och då kan ett svar se ut som nedan
{
"entry": {
"id": 1,
"name": "Roma Tomato",
"variety": "San Marzano",
"scientificName": "Solanum lycopersicum",
"growingFromSeed": "AA",
"mixedColors": false,
"lifespan": "Annual",
"cuttingMonth": "May",
"lightLevel": "Sunny",
"customInfo": "Reliable paste tomato with rich flavor. Start indoors and transplant after frost danger has passed.",
"photos": [
"/assets/plant-sample.jpg"
],
"userPhotos": [],
"seedPacketLinks": [],
"authorId": 1,
"createdAt": "2026-04-18T09:00:00.000Z",
"updatedAt": "2026-07-08T16:34:25.512Z",
"author": {
"id": 1,
"name": "Unknown"
}
},
"comments": []
}
Områden
Hämta information om ett område
Du kan hämta information om ett område genom ett GET anrop, och du får tillbaka alla uppgifter om området. Och som vanligt så är det dom som har Label som är översättning till det valda språket för API, dom används inte vid uppdatering av uppgifter.
- För att läsa ett område:
GET /api/areas/1där siffran 1 byts ut mot områdets id nummer, vilket du kan se när du är i en webbläsare. - För att få alla områden:
GET /api/areas
{
"language": "sv",
"temperatureUnit": "celsius",
"area": {
"id": 1,
"name": "North Raised Beds",
"type": "Vegetable beds",
"sunlight": "Indirect light",
"temperature": 20,
"showTemperature": true,
"humidity": 20,
"humidityTarget": 60,
"showHumidity": true,
"locationId": 1,
"underRoof": false,
"notes": "Tomatoes, basil, and peppers. Add compost every other month.",
"typeLabel": "Grönsaksbäddar",
"temperatureLabel": "20°C",
"humidityLabel": "20% / target 60%",
"humidityProgress": 33.33333333333333
}
}
Uppdatera ett område
För att uppdatera information om ett specifikt område använder du PATCH /api/areas/1 och byter ut siffran 1 mot det korrekta id numret. Sedan skickar du ett JSON anrop med det du behöver uppdatera på området. I exemplet nedan så uppdaterar vi temperatur och luftfuktighet, och när du uppdaterar så alla status strängar så är det engelska som gäller.
Uppdatera via Home Assistant
Ett exempel nedan som läggs till i configuration.yml i Home Assistant för att kunna uppdatera temperatur och luftfuktighet i ett område. Du måste ändra adressen till din OlsGrow adress för API, lägga till din API nyckel från OlsGrow och ställa in sensorernas namn. Sen gör du en automation som triggas exempel var 5 minut som ska köra send_temp.