Skip to Content
Getting started

Getting started

Available. Provisioning is operated by Soiltech during early access; the user, session-token and key endpoints below are live.

Get a tenant and an API key

Soiltech provisions your tenant and hands over a bootstrap API key (glpk_…). The secret is shown once, so store it in your secret manager. Issue further scoped keys with POST /v1/keys.

Register your users

Create a user for each person who should be able to open Growth Lab. tenantKey is your identifier for them; the Engine returns its own id.

curl -X POST "$ENGINE/v1/users" \ -H "Authorization: Bearer $GROWTH_ENGINE_API_KEY" \ -H "Content-Type: application/json" \ -d '{"tenantKey": "u-10482", "displayName": "Dana Grower", "email": "[email protected]", "locale": "en-US", "timezone": "America/Boise", "units": "imperial"}'

Trigger email/phone verification when you want the user to receive reports (POST /v1/users/{id}/verifications).

Sign a user in (mint a session token)

When one of your users opens Growth Lab, your backend mints a short-lived token for them and hands it to your page:

curl -X POST "$ENGINE/v1/users/$USER_ID/session-tokens" \ -H "Authorization: Bearer $GROWTH_ENGINE_API_KEY" # → { "token": "gst_…", "expiresAt": "2026-08-18T14:05:00Z" }

Pass the token to the embedded GUI in the iframe init message (see Embedding), or link to https://<gui>/session?token=… for standalone use.

Register sources, then build a flow

Send the Engine the Sources your org actually has: one generic record each, with a hint saying what it is (area for a field/polygon, sensor for a device or station, weather-station, or your own), plus an optional boundary/location. The GUI Sources step lists that catalog grouped by hint (and maps boundaries or locations when present) so growers can bind a flow to it, or add a source from that step. Build a flow in the GUI (Create tab: flow, sources, alerts, and reports in one pass) or POST /v1/flows with a tile definition, target it at the selected sources, and enable scheduling.

Connect your data (adapters)

The Engine stores no sensor, weather or event data. Register an adapter per facet (series, weather, events), a small script the Engine runs, sandboxed, whenever a flow needs that data; see Adapters. Until yours is connected, every data tile can run on generated demo data (dataSource: generate).

Add contacts and verify them

Alert recipients are contacts (grouped in contact lists). Each email/phone must be verified before the Engine will send to it; see Verified addresses.

Subscribe to webhooks

Register an HTTPS endpoint for flow.triggered, run.completed, … and verify the X-GrowthEngine-Signature header on each delivery.