Agsemble
Docs/Start

Start

Quickstart

Preview a real field, create a self-service sandbox, and make the first authenticated request.

1. Preview value before signup

Open the console and paste one Southeast Asian GeoJSON Polygon. The bounded preview returns measured geometry, weather, NDVI, cloud cover, source mode, and provenance without saving the field or creating a key.

  • One Polygon, at most 25 hectares and 200 vertices
  • Two previews per network per UTC day, plus a shared daily ceiling
  • Turnstile verification in production; no history, persistence, arbitrary provider, or date controls
  • Weather and earth-observation failures are reported independently

2. Verify once to save and build

Enter an email in the console, complete the browser verification, and exchange the six-digit code for one free Sandbox. No password, credit card, provider account, or sales call is required. Store the returned API key ID and one-time recovery code separately from the API key.

Automated issuance with createAgsembleSandbox() is available only when GET /api/v1/capabilities reports sandbox_issuance.status as ready. Coding agents and server scripts must not bypass browser or email verification.

Conditional automated issuance
const manifest = await fetch(
  "https://api.agsemble.com/api/v1/capabilities",
).then((response) => response.json());

if (manifest.sandbox_issuance.status !== "ready") {
  console.log("Open https://agsemble.com/console to create a key");
}

3. Install and configure the SDK

The SDK works in Expo, React Native, browsers, Workers, and Node runtimes with fetch. Put the key in a server-side secret or local environment variable. EXPO_PUBLIC values are acceptable only for disposable prototypes because they are embedded in the app bundle.

npm install https://api.agsemble.com/downloads/agsemble-sdk-0.9.0.tgz
export AGSEMBLE_API_KEY="ag_test_…"
import { Agsemble } from "@agsemble/sdk";

const agsemble = new Agsemble({
  apiKey: process.env.AGSEMBLE_API_KEY!,
});

4. Read one coherent field summary

List fields first and reuse an ID returned by the API. The summary composes normalized weather, earth observation, and recent scouting observations with per-component readiness and freshness. Granular endpoints remain available when the product needs independent refreshes.

const fields = await agsemble.fields.list();
const summary = await agsemble.fields.summary(fields.data[0].id);

console.log(summary.status); // "ready" or "partial"
console.log(summary.components.weather.data?.source.mode);
console.log(summary.components.earth_observation.data?.indicator.mean);

5. Continue building

  • Create, map, and revise startup-owned GeoJSON fields with agsemble.fields.create(...) and agsemble.fields.update(...).
  • Store mobile observations locally before attempting network sync.
  • Use each observation ID as the Idempotency-Key on every retry.
  • Correlate failures with agsemble.activity.list().

Hand the integration to a coding agent

Give the agent concise platform facts and links, then describe the product you want. Keep the API key in AGSEMBLE_API_KEY rather than pasting it into a prompt.

Agsemble base URL: https://api.agsemble.com
Authentication: Bearer $AGSEMBLE_API_KEY
Fit: fields plus weather, earth observation, or offline observations
Start: list fields, then GET /api/v1/fields/{field_id}/summary
API contract: https://api.agsemble.com/openapi.json
Agent docs: https://agsemble.com/llms.txt