GrowVPD Pro API

Free, open API for indoor growing science. No API key required.

v2.1 18 endpoints REST / JSON No auth required
Base URL https://api.growvpd.pro

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.

Terminal
# 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"
JavaScript
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_kpa); // 0.9088
console.log(data.status);  // "vegetative"
Python
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_kpa"]) # 0.9088
print(data["status"])  # "vegetative"
⚡
Rate limits: Requests are rate-limited. A quick burst (roughly more than 10 requests within a few seconds) is answered with HTTP 429 — wait a few seconds and try again. If you plan to make high-volume calls, please reach out at support@growvpd.pro.

🌱 Core VPD

GET /v1/vpd

Calculate VPD (Vapor Pressure Deficit) from temperature and humidity. Returns VPD value, leaf VPD, status classification, and optimal ranges for all growth stages.

ParameterTypeDefaultDescription
temprequirednumber-Air temperature
humidityrequirednumber-Relative humidity (%)
leaf_offsetnumber2.0Leaf temperature offset below air temp
unitstringcTemperature unit: c (Celsius) or f (Fahrenheit)
Try it
GET /v1/vpd?temp=25&humidity=60
{
  "vpd_kpa": 0.9088,
  "vpd_psi": 0.1318,
  "vpd_mbar": 9.09,
  "status": "vegetative",
  "status_label": "Vegetative Growth",
  "status_color": "#4CAF50",
  "air_temperature_c": 25.0,
  "air_temperature_f": 77.0,
  "leaf_temperature_c": 23.0,
  "leaf_temperature_f": 73.4,
  "leaf_offset_c": 2.0,
  "humidity_pct": 60.0,
  "svp_leaf_kpa": 2.8094,
  "svp_air_kpa": 3.1678,
  "avp_kpa": 1.9007,
  "dewpoint_c": 16.7,
  "dewpoint_f": 62.1,
  "wet_bulb_c": 19.5,
  "absolute_humidity_gm3": 13.81,
  "mold_risk": {
    "level": "low",
    "score": 0,
    "color": "#4CAF50",
    "message": "Low mold risk. Conditions are favorable."
  },
  "stage_suitability": {
    "clone": { "suitability": "too_high", "score": 58, "target_range_kpa": [0.4, 0.7], "optimal_kpa": 0.5 },
    "seedling": { "suitability": "too_high", "score": 78, "target_range_kpa": [0.4, 0.8], "optimal_kpa": 0.6 },
    "early_veg": { "suitability": "optimal", "score": 98, "target_range_kpa": [0.8, 1.0], "optimal_kpa": 0.9 },
    "late_veg": { "suitability": "too_low", "score": 82, "target_range_kpa": [1.0, 1.2], "optimal_kpa": 1.1 },
    "transition": { "suitability": "too_low", "score": 82, "target_range_kpa": [1.0, 1.3], "optimal_kpa": 1.15 },
    "early_flower": { "suitability": "too_low", "score": 82, "target_range_kpa": [1.0, 1.4], "optimal_kpa": 1.2 },
    "mid_flower": { "suitability": "too_low", "score": 42, "target_range_kpa": [1.2, 1.5], "optimal_kpa": 1.35 },
    "late_flower": { "suitability": "too_low", "score": 22, "target_range_kpa": [1.3, 1.6], "optimal_kpa": 1.45 },
    "drying": { "suitability": "too_low", "score": 82, "target_range_kpa": [1.0, 1.4], "optimal_kpa": 1.2 },
    "curing": { "suitability": "optimal", "score": 91, "target_range_kpa": [0.8, 1.2], "optimal_kpa": 1.0 }
  },
  "advice": [
    "Excellent range for vegetative growth.",
    "Strong transpiration promotes nutrient uptake and healthy stems."
  ],
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/target

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.

ParameterTypeDefaultDescription
vpdnumber-Target VPD value (kPa). Provide this or stage.
stagestring-Growth stage (uses midpoint VPD). One of: clone, seedling, early_veg, late_veg, transition, early_flower, mid_flower, late_flower, drying, curing
tempnumber-Known temperature (solves for humidity)
humiditynumber-Known humidity (solves for temperature)
leaf_offsetnumber2.0Leaf temperature offset
unitstringcTemperature unit: c or f
Try it
GET /v1/target?vpd=1.2&temp=25
{
  "given_temperature_c": 25.0,
  "given_temperature_f": 77.0,
  "required_humidity_pct": 50.8,
  "achieved_vpd_kpa": 1.2002,
  "dewpoint_c": 14.1,
  "target_vpd_kpa": 1.2,
  "leaf_offset_c": 2.0,
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/chart

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.

ParameterTypeDefaultDescription
temp_minnumber15Minimum temperature
temp_maxnumber35Maximum temperature
temp_stepnumber1Temperature step size
rh_minnumber30Minimum relative humidity (%)
rh_maxnumber90Maximum relative humidity (%)
rh_stepnumber5Humidity step size
leaf_offsetnumber2Leaf temperature offset
stagestring-Growth stage for zone classification
Try it
GET /v1/chart?temp_min=18&temp_max=30&stage=mid_flower
{
  "chart": [
    {
      "temp_c": 18,
      "temp_f": 64.4,
      "values": [
        { "humidity": 30, "vpd": 1.1991, "status": "transition", "color": "#8BC34A", "in_target": false },
        { "humidity": 35, "vpd": 1.0959, "status": "transition", "color": "#8BC34A", "in_target": false },
        // ... more humidity values
      ]
    },
    // ... more temperature rows
  ],
  "leaf_offset_c": 2.0,
  "temp_range": [18, 30],
  "humidity_range": [30, 90],
  "target_vpd_range": [1.2, 1.5],
  "stage": "mid_flower",
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/batch

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.

ParameterTypeDefaultDescription
readingsrequiredJSON array-Array of {"temp":N, "humidity":N} objects (URL-encoded)
leaf_offsetnumber2.0Leaf temperature offset
Try it
GET /v1/batch?readings=[{"temp":25,"humidity":60},{"temp":26,"humidity":55}]
{
  "results": [
    {
      "index": 0,
      "temp_c": 25.0,
      "humidity": 60.0,
      "vpd_kpa": 0.9088,
      "status": "vegetative",
      "color": "#4CAF50",
      "dewpoint_c": 16.7
    },
    {
      "index": 1,
      "temp_c": 26.0,
      "humidity": 55.0,
      "vpd_kpa": 1.1351,
      "status": "transition",
      "color": "#8BC34A",
      "dewpoint_c": 16.26
    }
  ],
  "statistics": {
    "count": 2,
    "min_vpd": 0.909,
    "max_vpd": 1.135,
    "avg_vpd": 1.022,
    "range_vpd": 0.226,
    "std_dev": 0.113,
    "stability_score": 89,
    "stability_label": "Excellent",
    "trend": "stable"
  },
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}

☀ Light & DLI

GET /v1/dli

Daily Light Integral calculator. Compute DLI from PPFD and photoperiod (forward), or find the required PPFD to hit a target DLI (reverse).

ParameterTypeDefaultDescription
ppfdnumber-Photosynthetic Photon Flux Density (umol/m2/s)
hoursnumber-Photoperiod in hours
dlinumber-Target DLI (mol/m2/day) for reverse calculation
Try it
GET /v1/dli?ppfd=600&hours=12
{
  "ppfd": 600.0,
  "hours": 12.0,
  "dli": 25.92,
  "unit": "mol/m2/day",
  "analysis": {
    "status": "moderate",
    "label": "Moderate - vegetative growth",
    "suitable_for": ["vegetative stage", "leafy greens", "herbs"]
  },
  "equivalents": { "18h_ppfd": 400.0, "16h_ppfd": 450.0, "14h_ppfd": 514.0, "12h_ppfd": 600.0 },
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/light

Comprehensive light calculator. Estimates PPFD from wattage and area, calculates DLI, evaluates light intensity for a given growth stage, and provides efficiency metrics.

ParameterTypeDefaultDescription
ppfdnumber-Known PPFD (if available)
hoursnumber-Photoperiod in hours
wattsnumber-Light wattage (for PPFD estimation)
efficiencynumber2.5LED efficiency (umol/J)
areanumber-Grow area in m2
heightnumber-Light height in centimeters
stagestring-Growth stage for evaluation
Try it
GET /v1/light?watts=600&area=1.44&hours=12&stage=mid_flower
{
  "estimated_ppfd": 1042.0,
  "watts": 600.0,
  "efficiency_umol_j": 2.5,
  "area_m2": 1.44,
  "note": "PPFD estimate based on efficiency rating. Actual varies by light model and height.",
  "estimated_dli": 45.01,
  "ppfd": 1042.0,
  "hours": 12.0,
  "dli": 45.01,
  "dli_analysis": {
    "status": "optimal",
    "label": "Optimal - flowering stage",
    "suitable_for": ["flowering", "fruiting plants", "high-light crops"]
  },
  "stage": "mid_flower",
  "recommended_ppfd": [600, 900],
  "recommended_dli": [30, 50],
  "recommended_hours": 12,
  "ppfd_status": "optimal",
  "ppfd_advice": "PPFD is in good range for Mid Flower (Bud Formation).",
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}

🌿 Growing Stages

GET /v1/stage

Get comprehensive environment targets for a growth stage. Returns optimal ranges for VPD, temperature, humidity, PPFD, DLI, CO2, EC and pH. Optionally tailored to a growing medium.

ParameterTypeDefaultDescription
stagestring-Stage name or "all" for every stage. Options: clone, seedling, early_veg, late_veg, transition, early_flower, mid_flower, late_flower, drying, curing
mediumstring-Growing medium: soil, coco, hydro, dwc
Try it
GET /v1/stage?stage=mid_flower&medium=coco
{
  "stage": "mid_flower",
  "name": "Mid Flower (Bud Formation)",
  "vpd_range_kpa": [1.2, 1.5],
  "vpd_optimal_kpa": 1.35,
  "temperature_day_c": [23, 26],
  "temperature_day_f": [73.4, 78.8],
  "temperature_night_c": [19, 22],
  "temperature_night_f": [66.2, 71.6],
  "humidity_pct": [45, 55],
  "ppfd_range": [600, 900],
  "dli_range": [30, 50],
  "light_hours": 12,
  "co2_ppm": [800, 1400],
  "duration": "3-4",
  "medium": "coco",
  "ec_range": [1.4, 2.4],
  "ppm_500_range": [700, 1200],
  "ph_range": [5.5, 6.5],
  "ph_optimal": 5.9,
  "npk_ratio": { "N": 1, "P": 3, "K": 3 },
  "cal_mag_need": "high",
  "tips": [
    "Peak nutrient demand",
    "Support heavy branches",
    "Watch for calcium/magnesium deficiency",
    "Maintain good airflow around buds"
  ],
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/schedule

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.

ParameterTypeDefaultDescription
typestring-Plant type: photo (photoperiod) or auto (autoflower)
mediumstring-Growing medium: soil, coco, hydro, dwc
Try it
GET /v1/schedule?type=auto&medium=coco
{
  "type": "auto",
  "type_label": "Autoflower",
  "medium": "coco",
  "total_duration": "10-12 (seed to harvest) + curing",
  "light_schedule": "20/4 or 18/6 throughout (autoflower)",
  "timeline": [
    {
      "week": 1,
      "stage": "seedling",
      "label": "Seedling",
      "vpd_target": 0.6,
      "vpd_range": [0.4, 0.8],
      "temp_day_c": [24, 27],
      "humidity_pct": [65, 80],
      "ppfd": [100, 300],
      "ec_range": [0.4, 0.8],
      "ph_range": [5.5, 6.5],
      "light_hours": 18,
      "tips": [
        "Start light high, lower gradually",
        "Water in small circle around stem",
        "No nutrients first week in soil",
        "Watch for stretching (raise light if needed)"
      ]
    },
    // ... one entry per week
  ],
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}

🔍 Diagnostics

GET /v1/diagnose

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.

ParameterTypeDefaultDescription
temprequirednumber-Air temperature
humidityrequirednumber-Relative humidity (%)
stagestring-Growth stage for context-aware diagnosis
mediumstring-Growing medium
ppfdnumber-Current PPFD
phnumber-Nutrient solution pH
ecnumber-Nutrient solution EC (mS/cm)
co2number-CO2 level (ppm)
night_tempnumber-Night temperature
unitstringcTemperature unit: c or f
Try it
GET /v1/diagnose?temp=32&humidity=75&stage=late_flower&ph=7.5
{
  "overall": "critical",
  "health_score": 15,
  "health_label": "Poor",
  "stage": "late_flower",
  "stage_name": "Late Flower (Ripening)",
  "medium": "soil",
  "vpd_kpa": 0.677,
  "dewpoint_c": 27.0,
  "issues": [
    {
      "param": "temperature",
      "severity": "critical",
      "message": "TEMPERATURE 32.0C is critically high (target: 22-25C)",
      "fix": "Increase ventilation or add AC"
    },
    {
      "param": "humidity",
      "severity": "critical",
      "message": "HUMIDITY 75% is critically high (target: 40-50%)",
      "fix": "Dehumidifier + increase exhaust"
    },
    {
      "param": "vpd",
      "severity": "critical",
      "message": "VPD 0.68 kPa is critically low (target: 1.3-1.6kPa)",
      "fix": "Lower humidity or raise temp slightly"
    }
  ],
  "warnings": [
    {
      "param": "ph",
      "severity": "warning",
      "message": "PH 7.5 is slightly high (target: 6.0-7.0)",
      "fix": "Lower pH towards 6.5"
    }
  ],
  "ok": [],
  "priority_fix": "Increase ventilation or add AC",
  "mold_risk": {
    "level": "moderate",
    "score": 35,
    "color": "#FF9800",
    "message": "Moderate mold risk. Monitor closely, especially in dense canopy areas."
  },
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/deficit

Symptom-based nutrient deficiency diagnosis. Describe visible plant symptoms and get ranked possible deficiencies with confidence scores, affected nutrients, and treatment recommendations.

ParameterTypeDefaultDescription
symptomsrequiredstring-Comma-separated symptom keywords. Examples: yellow_lower_leaves, brown_spots_new_growth, leaf_curl_up, purple_stems, slow_growth, burnt_tips
phnumber-Current pH (helps narrow diagnosis)
mediumstring-Growing medium
Try it
GET /v1/deficit?symptoms=yellow_lower_leaves,brown_spots&ph=7.2
{
  "input_symptoms": ["brown_spots", "yellow_lower_leaves"],
  "diagnoses": [
    {
      "deficiency": "nitrogen",
      "name": "Nitrogen (N)",
      "confidence": "low",
      "match_score": 20,
      "matched_symptoms": ["yellow_lower_leaves"],
      "all_symptoms": ["yellow_lower_leaves", "pale_green", "slow_growth", "small_leaves", "early_senescence"],
      "visual_description": "Lower/older leaves turn uniformly yellow, starting from tips. Plant appears pale green overall.",
      "mobility": "mobile",
      "common_causes": ["low_ec", "ph_too_high", "root_problems", "overwatering", "cold_roots"],
      "fix": "Increase nitrogen in feed. Use CalMag or fish emulsion for quick fix. Check pH.",
      "severity_if_untreated": "Plant will cannibalize fan leaves. Yield loss 20-40%.",
      "ph_lockout_likely": false
    },
    // ... more possible causes
  ],
  "unmatched_symptoms": ["brown_spots"],
  "medium": "soil",
  "ph": 7.2,
  "ph_status": "too_high",
  "ph_advice": "pH 7.2 is above optimal 6.0-7.0 for soil. This can lock out iron, manganese, and zinc.",
  "primary_diagnosis": "Nitrogen (N)",
  "recommended_action": "Increase nitrogen in feed. Use CalMag or fish emulsion for quick fix. Check pH.",
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/dewpoint

Calculate dewpoint temperature and a mold/condensation risk assessment. Essential for preventing bud rot and mildew.

ParameterTypeDefaultDescription
temprequirednumber-Air temperature
humidityrequirednumber-Relative humidity (%)
unitstringcTemperature unit: c or f
Try it
GET /v1/dewpoint?temp=25&humidity=70
{
  "air_temperature_c": 25.0,
  "air_temperature_f": 77.0,
  "humidity_pct": 70.0,
  "dewpoint_c": 19.15,
  "dewpoint_f": 66.5,
  "wet_bulb_c": 20.9,
  "wet_bulb_f": 69.6,
  "absolute_humidity_gm3": 16.12,
  "vpd_kpa": 0.592,
  "frost_point_c": null,
  "condensation_risk": [
    {
      "surface": "Walls",
      "estimated_temp_c": 23.0,
      "status": "safe",
      "margin_c": 3.9,
      "warning": "Safe. 3.9C above dewpoint."
    },
    {
      "surface": "Windows",
      "estimated_temp_c": 20.0,
      "status": "safe",
      "margin_c": 0.9,
      "warning": "Safe. 0.9C above dewpoint."
    },
    // ... more surfaces
  ],
  "mold_risk": {
    "level": "moderate",
    "score": 25,
    "color": "#FF9800",
    "message": "Moderate mold risk. Monitor closely, especially in dense canopy areas."
  },
  "dewpoint_adjustment_table": [
    { "dewpoint_c": 14, "humidity_needed": 50.5 },
    { "dewpoint_c": 15, "humidity_needed": 53.8 },
    { "dewpoint_c": 16, "humidity_needed": 57.4 },
    // ... more rows
  ],
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}

🥳 Nutrients & Feeding

GET /v1/nutrient

Get EC, pH, and PPM targets for a given growth stage and medium. Includes medium-specific tips and adjustments based on your water source EC.

ParameterTypeDefaultDescription
stagerequiredstring-Growth stage
mediumstring-Growing medium: soil, coco, hydro, dwc
water_ecnumber-Base water EC (mS/cm) for adjusted targets
Try it
GET /v1/nutrient?stage=mid_flower&medium=coco&water_ec=0.3
{
  "stage": "mid_flower",
  "stage_name": "Mid Flower (Bud Formation)",
  "medium": "coco",
  "ec_target": [1.4, 2.4],
  "ec_adjusted_for_water": [1.1, 2.1],
  "water_ec": 0.3,
  "ppm_500_scale": [700, 1200],
  "ppm_700_scale": [980, 1680],
  "ph_range": [5.5, 6.5],
  "ph_optimal": 5.9,
  "npk_ratio": { "N": 1, "P": 3, "K": 3 },
  "npk_description": "Heavy PK, reduce N",
  "cal_mag_need": "high",
  "feeding_tips": [
    "Shift to high P-K nutrients",
    "Reduce nitrogen in mid-late flower",
    "Target EC: 1.4-2.4 mS/cm (700-1200 PPM @500)",
    "PK booster in weeks 3-6 of flower",
    "CalMag critical - bud growth demands calcium",
    "Watch for tip burn = back off 10-20%"
  ],
  "medium_notes": "Coco is inert - feed every watering. CalMag essential. Never let coco dry out completely.",
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/co2

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.

ParameterTypeDefaultDescription
room_m3number-Room volume in cubic meters
target_ppmnumber1200Target CO2 concentration (ppm)
current_ppmnumber400Current ambient CO2 (ppm)
stagestring-Growth stage for recommendations
Try it
GET /v1/co2?room_m3=2.5&target_ppm=1200&stage=mid_flower
{
  "room_volume_m3": 2.5,
  "room_volume_ft3": 88.3,
  "current_ppm": 400.0,
  "target_ppm": 1200.0,
  "co2_needed_ppm": 800.0,
  "co2_per_fill_liters": 2.0,
  "co2_per_fill_grams": 4.0,
  "estimated_daily_grams": 7.9,
  "tank_20lb_duration_days": 1145,
  "safety": {
    "max_safe_ppm": 5000,
    "osha_limit_8h": 5000,
    "plant_toxic": "Above 2000ppm provides no benefit and wastes CO2",
    "human_risk": "Above 5000ppm causes headaches. Above 30000ppm is life-threatening."
  },
  "stage": "mid_flower",
  "recommended_co2": [800, 1400],
  "recommended_ppfd": [600, 900],
  "target_status": "optimal",
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/irrigation

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.

ParameterTypeDefaultDescription
pot_sizerequirednumber-Pot volume in liters
mediumstring-Growing medium: soil, coco, hydro, dwc
stagestring-Growth stage
vpdnumber-Current VPD (affects transpiration rate)
tempnumber-Current temperature
plantsnumber-Number of plants (multiplies total)
Try it
GET /v1/irrigation?pot_size=11&medium=coco&stage=mid_flower&vpd=1.3&plants=4
{
  "pot_size_liters": 11.0,
  "medium": "coco",
  "stage": "mid_flower",
  "stage_name": "Mid Flower (Bud Formation)",
  "water_per_plant_ml": 1897,
  "water_per_plant_with_runoff_ml": 2276,
  "target_runoff_pct": 20,
  "watering_frequency": "3-6x daily",
  "num_plants": 4,
  "daily_total_liters": 30.4,
  "weekly_total_liters": 212.5,
  "tips": [
    "Never let coco dry out completely",
    "Always water to 15-20% runoff to prevent salt buildup",
    "Feed with every watering (fertigation)",
    "Multiple small feeds per day is better than one large feed",
    "Automated drip system highly recommended for coco"
  ],
  "vpd_kpa": 1.3,
  "vpd_adjustment": "+15% (higher VPD = more water)",
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}

🔨 Equipment & Environment

GET /v1/room

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.

ParameterTypeDefaultDescription
lengthrequirednumber-Room length in meters
widthrequirednumber-Room width in meters
heightnumber2Room height in meters
lights_wattsnumber-Total light wattage
target_tempnumber25Target temperature
ambient_tempnumber22Ambient/intake temperature
plantsnumber4Number of plants
target_humiditynumber55Target humidity (%)
Try it
GET /v1/room?length=1.2&width=1.2&lights_watts=600&plants=4
{
  "room_dimensions": {
    "length_m": 1.2,
    "width_m": 1.2,
    "height_m": 2.0,
    "area_m2": 1.44,
    "area_ft2": 15.5,
    "volume_m3": 2.88,
    "volume_ft3": 101.7
  },
  "extraction_fan": {
    "recommended_cfm": 782,
    "recommended_m3h": 1328,
    "base_cfm": 102,
    "light_heat_cfm": 467,
    "includes_filter_resistance": true,
    "duct_size": "10\" (250mm) or 12\" (300mm)",
    "note": "CFM includes 25% for carbon filter and 10% for ducting resistance"
  },
  "climate_control": {
    "ac_btu_needed": 2246,
    "ac_note": "AC may not be needed with good ventilation",
    "humidifier_liters_per_day": 7.4,
    "dehumidifier_liters_per_day": 4.2,
    "dehumidifier_note": "Mainly needed in mid-late flower when humidity must be kept low"
  },
  "lighting": {
    "current_watts": 600.0,
    "current_wperm2": 416.7,
    "recommended_min_watts": 432,
    "recommended_optimal_watts": 720,
    "recommended_min_wperm2": 300,
    "recommended_optimal_wperm2": 500,
    "note": "Based on modern LED efficiency (~2.5 umol/J)"
  },
  "plants": { "num_plants": 4, "plants_per_m2": 2.8, "recommended_per_m2": "4-9 (SOG) or 1-4 (SCROG/LST)" },
  "environmental_targets": { "target_temp_c": 25.0, "target_humidity_pct": 55.0, "target_vpd_kpa": 1.07 },
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /v1/dry

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.

ParameterTypeDefaultDescription
wet_weightrequirednumber-Wet harvest weight in grams
tempnumber-Drying room temperature
humiditynumber-Drying room humidity (%)
methodstring-Drying method: hang, rack, or wet_trim
Try it
GET /v1/dry?wet_weight=500&temp=20&humidity=60
{
  "wet_weight_g": 500.0,
  "estimated_dry_weight_g": { "min": 90, "max": 135, "typical": 110 },
  "weight_loss_pct": "73-82%",
  "estimated_drying_days": { "min": 8, "optimal": 10, "max": 14 },
  "method": "hang",
  "method_description": "Whole plant or branches hung upside down. Slowest, best quality.",
  "ideal_conditions": {
    "temperature_c": [18, 21],
    "temperature_f": [64, 70],
    "humidity_pct": [55, 62],
    "vpd_kpa": [1.0, 1.4],
    "light": "Complete darkness",
    "airflow": "Gentle circulation, no direct fan on buds"
  },
  "readiness_indicators": [
    "Small stems snap cleanly (not bend)",
    "Outside of buds feel dry but not crispy",
    "Larger stems still bend slightly",
    "Buds feel slightly springy when squeezed",
    "Target weight: ~110g from 500.0g wet"
  ],
  "curing_guide": {
    "jar_fill": "75% full (leave air space)",
    "burping_week1": "Open jars 2-3x daily for 10-15 minutes",
    "burping_week2": "Open jars 1-2x daily for 5-10 minutes",
    "burping_week3_plus": "Open jars every 2-3 days",
    "target_humidity_in_jar": "58-65% (use Boveda 62% packs)",
    "minimum_cure_weeks": 2,
    "optimal_cure_weeks": "4-8",
    "storage": "Cool (18-22C), dark, airtight. Avoid plastic bags."
  },
  "current_conditions": { "temperature_c": 20.0, "humidity_pct": 60.0, "vpd_kpa": 0.66 },
  "condition_status": "too_humid",
  "condition_advice": "VPD too low for drying. Risk of mold. Increase airflow and lower humidity.",
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}

🔧 Utilities

GET /v1/convert

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.

ParameterTypeDefaultDescription
tempnumber-Temperature value to convert
fromstring-Source unit for temp: c or f
ecnumber-EC value (mS/cm) to convert to PPM
ppmnumber-PPM value to convert to EC
ppm_scalestring-PPM scale: 500 or 700
ppfdnumber-PPFD to convert to Lux
luxnumber-Lux to convert to PPFD
vpdnumber-VPD value for unit info
Try it
GET /v1/convert?ec=1.5
{
  "ec_ppm": {
    "ec_ms_cm": 1.5,
    "ec_us_cm": 1500.0,
    "ppm_500": 750,
    "ppm_700": 1050,
    "tds_hanna": 750,
    "tds_truncheon": 1050,
    "note": "PPM 500 scale (Hanna, Milwaukee) or 700 scale (Truncheon, Bluelab)"
  },
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}
GET /health

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.

ParameterTypeDefaultDescription
No parameters required
Try it
GET /health
{
  "status": "ok",
  "uptime_seconds": 111382,
  "uptime_human": "1d 6h 56m",
  "requests_served": 1484,
  "version": "2.1.0",
  "endpoints": 18,
  "powered_by": "GrowVPD Pro",
  "app": "https://growvpd.pro",
  "api_version": "2.1.0"
}