Quick Start
The GrowVPD Pro API is completely free and requires no authentication. All endpoints return JSON. Just send a GET request and you are ready to go.
https://api.growvpd.pro. This will transition to https://api.growvpd.pro in the near future. All endpoint paths will remain identical.# Calculate VPD for 25C and 60% humidity curl "https://api.growvpd.pro/v1/vpd?temp=25&humidity=60" # Get environment targets for mid-flower stage curl "https://api.growvpd.pro/v1/stage?stage=mid_flower&medium=coco"
const BASE = "https://api.growvpd.pro"; async function getVPD(temp, humidity) { const res = await fetch( `${BASE}/v1/vpd?temp=${temp}&humidity=${humidity}` ); return res.json(); } // Usage const data = await getVPD(25, 60); console.log(data.vpd); // 1.27 console.log(data.status); // "slightly_high"
import requests BASE = "https://api.growvpd.pro" def get_vpd(temp, humidity): r = requests.get(f"{BASE}/v1/vpd", params={ "temp": temp, "humidity": humidity }) return r.json() data = get_vpd(25, 60) print(data["vpd"]) # 1.27 print(data["status"]) # "slightly_high"
Core VPD
Calculate VPD (Vapor Pressure Deficit) from temperature and humidity. Returns VPD value, leaf VPD, status classification, and optimal ranges for all growth stages.
| Parameter | Type | Default | Description |
|---|---|---|---|
| temprequired | number | - | Air temperature |
| humidityrequired | number | - | Relative humidity (%) |
| leaf_offset | number | 2.0 | Leaf temperature offset below air temp |
| unit | string | c | Temperature unit: c (Celsius) or f (Fahrenheit) |
{
"vpd": 1.27,
"vpd_leaf": 1.09,
"status": "slightly_high",
"temperature": 25,
"humidity": 60,
"leaf_temperature": 23,
"dewpoint": 16.7,
"unit": "celsius",
"stages": {
"clone_seedling": { "min": 0.4, "max": 0.8, "status": "too_high" },
"early_veg": { "min": 0.6, "max": 1.0, "status": "too_high" },
"late_veg": { "min": 0.8, "max": 1.2, "status": "slightly_high" },
"early_flower": { "min": 1.0, "max": 1.4, "status": "optimal" },
"mid_flower": { "min": 1.2, "max": 1.5, "status": "optimal" },
"late_flower": { "min": 1.2, "max": 1.6, "status": "optimal" }
}
}
Reverse VPD calculator. Given a target VPD (or growth stage) and either temperature or humidity, calculates the missing variable. Useful for finding what humidity to aim for at a given temperature.
| Parameter | Type | Default | Description |
|---|---|---|---|
| vpd | number | - | Target VPD value (kPa). Provide this or stage. |
| stage | string | - | Growth stage (uses midpoint VPD). One of: clone_seedling, early_veg, late_veg, early_flower, mid_flower, late_flower |
| temp | number | - | Known temperature (solves for humidity) |
| humidity | number | - | Known humidity (solves for temperature) |
| leaf_offset | number | 2.0 | Leaf temperature offset |
| unit | string | c | Temperature unit: c or f |
{
"target_vpd": 1.2,
"known_variable": "temperature",
"known_value": 25,
"solved_variable": "humidity",
"solved_value": 62.1,
"leaf_offset": 2.0,
"unit": "celsius",
"verification": {
"actual_vpd": 1.2,
"vpd_leaf": 1.03
}
}
Generate a VPD heatmap data matrix. Returns a 2D grid of VPD values across a temperature and humidity range, with zone classifications. Perfect for building visual VPD charts.
| Parameter | Type | Default | Description |
|---|---|---|---|
| temp_min | number | 15 | Minimum temperature |
| temp_max | number | 35 | Maximum temperature |
| temp_step | number | 1 | Temperature step size |
| rh_min | number | 30 | Minimum relative humidity (%) |
| rh_max | number | 90 | Maximum relative humidity (%) |
| rh_step | number | 5 | Humidity step size |
| leaf_offset | number | 2 | Leaf temperature offset |
| stage | string | - | Growth stage for zone classification |
{
"temp_range": [18, 19, 20, ..., 30],
"rh_range": [30, 35, 40, ..., 90],
"stage": "mid_flower",
"stage_range": { "min": 1.2, "max": 1.5 },
"leaf_offset": 2,
"matrix": [
{
"temp": 18,
"values": [
{ "rh": 30, "vpd": 1.44, "zone": "optimal" },
{ "rh": 35, "vpd": 1.34, "zone": "optimal" },
// ... more humidity values
]
},
// ... more temperature rows
]
}
Batch VPD calculations with aggregated statistics. Submit multiple temperature/humidity readings and receive individual VPD values plus min, max, average, and standard deviation across the set.
| Parameter | Type | Default | Description |
|---|---|---|---|
| readingsrequired | JSON array | - | Array of {"temp":N, "humidity":N} objects (URL-encoded) |
| leaf_offset | number | 2.0 | Leaf temperature offset |
{
"readings": [
{
"temperature": 25,
"humidity": 60,
"vpd": 1.27,
"vpd_leaf": 1.09,
"status": "slightly_high"
},
{
"temperature": 26,
"humidity": 55,
"vpd": 1.51,
"vpd_leaf": 1.31,
"status": "high"
}
],
"statistics": {
"count": 2,
"vpd_min": 1.27,
"vpd_max": 1.51,
"vpd_avg": 1.39,
"vpd_std_dev": 0.12
}
}
Light & DLI
Daily Light Integral calculator. Compute DLI from PPFD and photoperiod (forward), or find the required PPFD to hit a target DLI (reverse). Includes optimal DLI ranges per growth stage.
| Parameter | Type | Default | Description |
|---|---|---|---|
| ppfd | number | - | Photosynthetic Photon Flux Density (umol/m2/s) |
| hours | number | - | Photoperiod in hours |
| dli | number | - | Target DLI (mol/m2/day) for reverse calculation |
{
"ppfd": 600,
"hours": 12,
"dli": 25.92,
"mode": "forward",
"stage_targets": {
"clone_seedling": { "dli_min": 6, "dli_max": 12 },
"early_veg": { "dli_min": 15, "dli_max": 25 },
"late_veg": { "dli_min": 25, "dli_max": 35 },
"early_flower": { "dli_min": 30, "dli_max": 40 },
"mid_flower": { "dli_min": 35, "dli_max": 50 },
"late_flower": { "dli_min": 30, "dli_max": 45 }
}
}
Comprehensive light calculator. Estimates PPFD from wattage and area, calculates DLI, evaluates light intensity for a given growth stage, and provides efficiency metrics.
| Parameter | Type | Default | Description |
|---|---|---|---|
| ppfd | number | - | Known PPFD (if available) |
| hours | number | - | Photoperiod in hours |
| watts | number | - | Light wattage (for PPFD estimation) |
| efficiency | number | 2.5 | LED efficiency (umol/J) |
| area | number | - | Grow area in m2 |
| height | number | - | Light height in meters |
| stage | string | - | Growth stage for evaluation |
{
"ppfd_estimated": 1041.7,
"dli": 45.0,
"watts": 600,
"area_m2": 1.44,
"watts_per_m2": 416.7,
"efficiency_umol_j": 2.5,
"hours": 12,
"stage": "mid_flower",
"stage_evaluation": {
"ppfd_status": "optimal",
"ppfd_target": { "min": 600, "max": 1200 },
"dli_status": "optimal",
"dli_target": { "min": 35, "max": 50 }
},
"daily_energy_kwh": 7.2
}
Growing Stages
Get comprehensive environment targets for a growth stage. Returns optimal ranges for VPD, temperature, humidity, PPFD, DLI, CO2, EC, pH, and watering frequency. Optionally tailored to a growing medium.
| Parameter | Type | Default | Description |
|---|---|---|---|
| stage | string | - | Stage name or "all" for every stage. Options: clone_seedling, early_veg, late_veg, early_flower, mid_flower, late_flower |
| medium | string | - | Growing medium: soil, coco, hydro, dwc |
{
"stage": "mid_flower",
"medium": "coco",
"targets": {
"vpd": { "min": 1.2, "max": 1.5, "ideal": 1.35 },
"temperature": { "day_min": 24, "day_max": 28, "night_min": 18, "night_max": 22 },
"humidity": { "min": 40, "max": 50 },
"ppfd": { "min": 600, "max": 1200 },
"dli": { "min": 35, "max": 50 },
"co2": { "min": 800, "max": 1200 },
"ec": { "min": 1.6, "max": 2.2 },
"ph": { "min": 5.8, "max": 6.2 }
},
"watering": {
"frequency": "2-4 times daily",
"runoff_target": "10-20%"
},
"notes": [
"Peak nutrient uptake period",
"Coco requires more frequent fertigation than soil",
"Monitor trichome development closely"
]
}
Generate a full grow timeline with week-by-week stage progression. Returns duration and environment targets for each stage, customized by plant type and growing medium.
| Parameter | Type | Default | Description |
|---|---|---|---|
| type | string | - | Plant type: photo (photoperiod) or auto (autoflower) |
| medium | string | - | Growing medium: soil, coco, hydro, dwc |
{
"type": "auto",
"medium": "coco",
"total_weeks": 10,
"light_schedule": "20/4 or 18/6 throughout",
"stages": [
{
"stage": "clone_seedling",
"weeks": "1-1",
"duration_weeks": 1,
"vpd": { "min": 0.4, "max": 0.8 },
"temp": { "min": 22, "max": 26 },
"humidity": { "min": 65, "max": 80 }
},
{
"stage": "early_veg",
"weeks": "2-3",
"duration_weeks": 2,
"vpd": { "min": 0.6, "max": 1.0 },
"temp": { "min": 22, "max": 28 },
"humidity": { "min": 55, "max": 70 }
},
// ... remaining stages
]
}
Diagnostics
Full environment diagnosis with a 0-100 health score. Analyzes temperature, humidity, VPD, pH, EC, PPFD, CO2, and night temperature. Returns issues found, severity levels, and actionable recommendations.
| Parameter | Type | Default | Description |
|---|---|---|---|
| temprequired | number | - | Air temperature |
| humidityrequired | number | - | Relative humidity (%) |
| stage | string | - | Growth stage for context-aware diagnosis |
| medium | string | - | Growing medium |
| ppfd | number | - | Current PPFD |
| ph | number | - | Nutrient solution pH |
| ec | number | - | Nutrient solution EC (mS/cm) |
| co2 | number | - | CO2 level (ppm) |
| night_temp | number | - | Night temperature |
| unit | string | c | Temperature unit: c or f |
{
"health_score": 35,
"overall_status": "critical",
"vpd": 1.19,
"temperature": 32,
"humidity": 75,
"stage": "late_flower",
"issues": [
{
"parameter": "temperature",
"severity": "high",
"message": "Temperature too high for late flower (32C, target 20-26C)",
"recommendation": "Increase ventilation, consider AC. High temps degrade terpenes and potency."
},
{
"parameter": "humidity",
"severity": "critical",
"message": "Humidity critically high for late flower (75%, target 35-45%)",
"recommendation": "Immediate action: run dehumidifier, increase airflow. Botrytis (bud rot) risk is extreme."
},
{
"parameter": "ph",
"severity": "medium",
"message": "pH too high (7.5, target 6.0-6.5)",
"recommendation": "Lower pH with pH Down. Nutrient lockout likely at this pH."
}
],
"mold_risk": "extreme",
"dewpoint": 27.3
}
Symptom-based nutrient deficiency diagnosis. Describe visible plant symptoms and get ranked possible deficiencies with confidence scores, affected nutrients, and treatment recommendations.
| Parameter | Type | Default | Description |
|---|---|---|---|
| symptomsrequired | string | - | Comma-separated symptom keywords. Examples: yellow_lower_leaves, brown_spots, curling_up, purple_stems, slow_growth, burnt_tips |
| ph | number | - | Current pH (helps narrow diagnosis) |
| medium | string | - | Growing medium |
{
"symptoms": ["yellow_lower_leaves", "brown_spots"],
"ph": 7.2,
"ph_warning": "pH is above optimal range. Nutrient lockout likely contributing to symptoms.",
"possible_deficiencies": [
{
"nutrient": "Calcium",
"symbol": "Ca",
"confidence": 0.85,
"mobility": "immobile",
"symptoms_matched": ["brown_spots"],
"treatment": "Add Cal-Mag supplement. Lower pH to 6.0-6.5 for better uptake."
},
{
"nutrient": "Nitrogen",
"symbol": "N",
"confidence": 0.78,
"mobility": "mobile",
"symptoms_matched": ["yellow_lower_leaves"],
"treatment": "Increase nitrogen in feed. Mobile nutrient: lower leaves affected first."
},
{
"nutrient": "Potassium",
"symbol": "K",
"confidence": 0.52,
"mobility": "mobile",
"symptoms_matched": ["brown_spots", "yellow_lower_leaves"],
"treatment": "Increase K in bloom nutrients. Check for salt buildup in medium."
}
],
"general_advice": "Priority: lower pH to 6.0-6.5 first, then reassess after 3-5 days."
}
Calculate dewpoint temperature, mold/condensation risk assessment, and safe night temperature minimum. Essential for preventing bud rot and mildew.
| Parameter | Type | Default | Description |
|---|---|---|---|
| temprequired | number | - | Air temperature |
| humidityrequired | number | - | Relative humidity (%) |
| unit | string | c | Temperature unit: c or f |
{
"temperature": 25,
"humidity": 70,
"dewpoint": 19.2,
"unit": "celsius",
"mold_risk": "moderate",
"condensation_risk": "low",
"safe_night_temp_min": 21.2,
"margin_to_dewpoint": 5.8,
"recommendations": [
"Night temperature must stay above 21.2C to prevent condensation",
"Consider dehumidification if humidity rises above 75%"
]
}
Nutrients & Feeding
Get EC, pH, and PPM targets for a given growth stage and medium. Includes medium-specific tips, flush schedules, and adjustments based on your water source EC.
| Parameter | Type | Default | Description |
|---|---|---|---|
| stagerequired | string | - | Growth stage |
| medium | string | - | Growing medium: soil, coco, hydro, dwc |
| water_ec | number | - | Base water EC (mS/cm) for adjusted targets |
{
"stage": "mid_flower",
"medium": "coco",
"water_ec": 0.3,
"targets": {
"ec": { "min": 1.6, "max": 2.2, "adjusted_min": 1.3, "adjusted_max": 1.9 },
"ph": { "min": 5.8, "max": 6.2 },
"ppm_500": { "min": 800, "max": 1100 },
"ppm_700": { "min": 1120, "max": 1540 }
},
"npk_ratio": "1-3-2 (bloom focus)",
"tips": [
"Coco is inert - all nutrients must come from solution",
"Always include Cal-Mag with coco (0.3-0.5 EC)",
"Feed every watering, no plain water days",
"Target 10-20% runoff to prevent salt buildup"
],
"flush_schedule": "Flush with pH'd water at EC 0.3 every 2 weeks"
}
CO2 enrichment calculator. Determine how much CO2 gas is needed to reach a target concentration in your grow room, and get stage-appropriate CO2 recommendations.
| Parameter | Type | Default | Description |
|---|---|---|---|
| room_m3 | number | - | Room volume in cubic meters |
| target_ppm | number | 1200 | Target CO2 concentration (ppm) |
| current_ppm | number | 400 | Current ambient CO2 (ppm) |
| stage | string | - | Growth stage for recommendations |
{
"room_m3": 2.5,
"current_ppm": 400,
"target_ppm": 1200,
"co2_needed_liters": 2.0,
"co2_needed_grams": 3.93,
"stage": "mid_flower",
"stage_recommendation": {
"optimal_ppm": { "min": 800, "max": 1200 },
"benefit": "10-30% yield increase with adequate light (>600 PPFD)"
},
"safety": {
"human_safe": true,
"osha_limit": 5000,
"note": "Target level is safe for humans. Ensure ventilation during lights-off."
},
"tips": [
"CO2 only benefits plants during lights-on period",
"Seal room and disable exhaust during CO2 injection",
"Higher CO2 allows higher temperatures (up to 30C)"
]
}
Watering volume and frequency calculator. Computes optimal water volume per pot based on pot size, medium, growth stage, and current environment conditions. Supports multiple plants.
| Parameter | Type | Default | Description |
|---|---|---|---|
| pot_sizerequired | number | - | Pot volume in liters |
| medium | string | - | Growing medium: soil, coco, hydro, dwc |
| stage | string | - | Growth stage |
| vpd | number | - | Current VPD (affects transpiration rate) |
| temp | number | - | Current temperature |
| plants | number | - | Number of plants (multiplies total) |
{
"pot_size_liters": 11,
"medium": "coco",
"stage": "mid_flower",
"plants": 4,
"per_plant": {
"water_ml": 2750,
"frequency": "2-4 times daily",
"runoff_target_pct": 15
},
"total": {
"water_ml": 11000,
"water_liters": 11.0,
"daily_total_liters": 33.0
},
"adjustments": {
"vpd_factor": "VPD 1.3 is optimal, no adjustment needed",
"temp_factor": null
},
"tips": [
"Water until 10-20% runoff each time",
"Never let coco dry out completely",
"Check runoff EC to monitor salt buildup"
]
}
Equipment & Environment
Room equipment sizing calculator. Given your tent/room dimensions and light wattage, get recommended ventilation (CFM), humidifier/dehumidifier capacity, and fan sizing. Accounts for heat load from lights.
| Parameter | Type | Default | Description |
|---|---|---|---|
| lengthrequired | number | - | Room length in meters |
| widthrequired | number | - | Room width in meters |
| height | number | 2 | Room height in meters |
| lights_watts | number | - | Total light wattage |
| target_temp | number | 25 | Target temperature |
| ambient_temp | number | 22 | Ambient/intake temperature |
| plants | number | 4 | Number of plants |
| target_humidity | number | 55 | Target humidity (%) |
{
"room": {
"length_m": 1.2,
"width_m": 1.2,
"height_m": 2,
"area_m2": 1.44,
"volume_m3": 2.88
},
"ventilation": {
"cfm_min": 102,
"cfm_recommended": 152,
"exchanges_per_hour": 3,
"fan_size_inches": 4
},
"climate": {
"heat_output_btu": 2047,
"cooling_needed": true,
"dehumidifier_pints_per_day": 8
},
"lighting": {
"watts_per_m2": 416.7,
"estimated_ppfd": 1042,
"assessment": "Excellent - suitable for flower"
},
"plants": {
"count": 4,
"area_per_plant_m2": 0.36,
"density_assessment": "Good spacing"
}
}
Drying and curing calculator. Estimate dry weight yield, optimal drying duration, and get step-by-step curing instructions based on wet harvest weight, environment, and trim method.
| Parameter | Type | Default | Description |
|---|---|---|---|
| wet_weightrequired | number | - | Wet harvest weight in grams |
| temp | number | - | Drying room temperature |
| humidity | number | - | Drying room humidity (%) |
| method | string | - | Drying method: hang, rack, or wet_trim |
{
"wet_weight_g": 500,
"estimated_dry_weight_g": { "min": 100, "max": 125 },
"dry_ratio": "4:1 to 5:1",
"drying": {
"duration_days": { "min": 7, "max": 14 },
"optimal_temp": { "min": 18, "max": 21 },
"optimal_humidity": { "min": 55, "max": 62 },
"environment_status": "good",
"stem_snap_test": "Ready when small stems snap, not bend"
},
"curing": {
"duration_weeks": { "min": 2, "max": 8 },
"jar_humidity_target": "58-62%",
"burping_schedule": [
"Week 1: Open jars 2-3 times daily for 15 min",
"Week 2: Open jars once daily for 10 min",
"Week 3-4: Open jars every 2-3 days",
"Week 5+: Open once weekly"
]
}
}
Utilities
Multi-purpose unit converter for grow-related measurements. Converts between Celsius/Fahrenheit, EC/PPM (both 500 and 700 scale), PPFD/Lux, and VPD units. Provide any input and get all conversions.
| Parameter | Type | Default | Description |
|---|---|---|---|
| temp | number | - | Temperature value to convert |
| from | string | - | Source unit for temp: c or f |
| ec | number | - | EC value (mS/cm) to convert to PPM |
| ppm | number | - | PPM value to convert to EC |
| ppm_scale | string | - | PPM scale: 500 or 700 |
| ppfd | number | - | PPFD to convert to Lux |
| lux | number | - | Lux to convert to PPFD |
| vpd | number | - | VPD value for unit info |
{
"conversions": {
"ec": {
"ec_ms_cm": 1.5,
"ppm_500": 750,
"ppm_700": 1050,
"us_cm": 1500,
"cf": 15
}
},
"notes": {
"ppm_500": "Hanna, Milwaukee scale (EC x 500)",
"ppm_700": "Eutech, Truncheon scale (EC x 700)"
}
}
API health check endpoint. Returns current API status, version, uptime, and endpoint count. Use this to verify the API is operational before making other calls.
| Parameter | Type | Default | Description |
|---|---|---|---|
| No parameters required | |||
{
"status": "healthy",
"version": "2.0.0",
"endpoints": 18,
"uptime": "15d 4h 22m"
}