Skip to content

Greitas startas - pirmoji NDVI serija per 15 minučių

Palydoviniai agronominiai duomenys draudikams, bankams ir agroverslui: vegetacijos indeksai, radaro įvykiai, žalos vertinimai, rizikos balai, BŽŪP atitiktis ir parametriniai indeksų produktai - per vieną HTTP API.

Šis puslapis yra greičiausias kelias nuo nulio iki tikro atsakymo. Be pardavimų skambučio, be kreditinės kortelės. Jei tai užtrunka ilgiau nei 15 minučių - tai mūsų klaida: praneškite ir nurodykite X-Request-Id ten, kur užstrigote.

Ko reikia Kur tai yra
Interaktyvus žinynas su „Try it” /reference; tą patį Scalar puslapį API pateikia ir pats kaip GET /v1/reference (tas pats host’as kaip užklausų, tad jokio CORS), šalia GET /v1/docs (Redoc, tik skaitymui) ir GET /v1/swagger
OpenAPI 3.1 dokumentas (SDK generavimui) GET /v1/openapi.json
Klaidų katalogas, kiekvienas error.type su sprendimu Klaidų katalogas
Endpoint sąrašas su nukopijuojamu curl Endpoint sąrašas
Postman kolekcija Postman

Bazinis adresas https://api.agrovisio.ai/v1 yra tas pats testinės aplinkos (sandbox) ir gyviems raktams. Kiekvienas pavyzdys žemiau naudoja $BASE:

Terminal window
export BASE=https://api.staging.agrovisio.ai/v1

0-2 minutė - gaukite testinės aplinkos raktą

Section titled “0-2 minutė - gaukite testinės aplinkos raktą”

Testinė aplinka nemokama, be kvotos, niekada neapmokestinama ir turi 20 realių Lietuvos sklypų su penkerių metų istorija, todėl pilną atsakymą gaunate jau pirmu kvietimu, o ne laukdami istorijos užpildymo.

  • Produkcijoje: užsiregistruokite portale ir nukopijuokite sk_test_... raktą. Mokėjimo duomenų nereikia, kol nepaprašysite gyvos prieigos, o gyvas naudojimas apmokamas pagal sąskaitą (žr. Perėjimas į gyvą aplinką žemiau).

    Registruotis portale
  • Kūrimo aplinkoje: testinę aplinką užpildo scripts/publicapi_sandbox_seed.py, kuris išspausdina šio diegimo demonstracinį raktą. Žemiau esantis raktas yra tas, su kuriuo ši dokumentacija patikrinta, ir jis veikia su lokalia testine aplinka toks, koks parašytas:

Terminal window
export KEY=sk_test_16e7fa3b7095c7f52f094bec33b48413

Raktai yra sk_test_ (testinė aplinka) arba sk_live_ (produkcija). Jie rodomi vieną kartą; saugome tik SHA-256 maišą ir prarasto rakto atkurti negalime - pakeiskite jį nauju.

Patikrinkite, kad raktas veikia:

Terminal window
curl -s "$BASE/account" -H "Authorization: Bearer $KEY"
{
"client_id": "a022d70d-bfba-54f3-b796-ae7aaced69df",
"name": "Agrovisio Sandbox",
"country": "LT",
"plan": "sandbox",
"status": "active",
"environment": "test",
"products": ["parcels", "indices", "weather", "sar", "thermal", "yield",
"risk", "cap", "damage", "index"],
"scopes": ["parcels:read", "parcels:write", "indices:read", "sar:read",
"thermal:read", "yield:read", "risk:read", "damage:write",
"damage:read", "index:write", "cap:read", "webhooks:manage"],
"parcel_quota": 10,
"parcels_active": 0,
"parcels_in_environment": 20,
"parcels_peak": 0,
"overage_parcels": 0,
"period_start": "2026-10-01",
"period_end": "2026-10-31",
"rate_limits": {"standard_per_min": 60, "write_per_min": 10,
"expensive_per_min": 2, "burst": 10},
"payment_overdue_since": null
}

parcels_active ir parcels_peak yra apmokestinimo pagrindas - apmokestinami gyvos aplinkos sklypai - ir su testinės aplinkos raktu visada lygūs 0. parcels_in_environment skaičiuoja sklypus, kuriuos jūsų paskyra turi šioje aplinkoje: 20 su demonstraciniu raktu aukščiau, nes demonstracinė paskyra ir yra bendro rinkinio savininkė, ir 0 su pačių užsiregistruotu testinės aplinkos raktu, kol nesusikūrėte savų sklypų. parcel_quota - 10 savų sklypų, kuriuos testinės aplinkos raktas gali pridėti; overage_parcels - kiek pikas tą kvotą viršija, o payment_overdue_since lieka null, kol nėra pradelstos sąskaitos. Kiekviena API laiko žyma yra UTC RFC 3339 formatu su Z priesaga ir milisekundžių tikslumu (2026-10-03T11:27:31.425Z; iki sekundės saugoma reikšmė vis tiek grąžinama kaip ...:31.000Z); datos be laiko, tokios kaip period_start ar event_date, yra paprastos YYYY-MM-DD.

Sklypas yra visko vienetas: stebite sklypus, mokate pagal mėnesio aktyvių sklypų piką, ir kiekvienas duomenų endpoint’as kabo ant sklypo id.

Terminal window
curl -s "$BASE/parcels?limit=25" -H "Authorization: Bearer $KEY"

Matote 20 bendrų sklypų ir tai, ką susikūrė jūsų pačių raktas - kitų testinės aplinkos klientų sklypai jums niekada nematomi. Su demonstraciniu raktu sąrašas yra lygiai šios 20 eilučių (has_more: false). Filtruokite pagal external_ref, o ne pagal eilės tvarką: sąrašas rikiuojamas nuo naujausio.

Kiekviena eilutė turi požymį shared. Jis true, kai sklypas priklauso ne jūsų rakto paskyrai - pačių užsiregistruotam testinės aplinkos raktui tai kiekvienas SBX-* sklypas, o DELETE į tokį atsako 404. Demonstracinis raktas yra ta paskyra, kuriai bendras rinkinys priklauso, todėl jam jie rodomi su shared: false ir jis galėtų juos ištrinti; nedarykite to - rinkinį atkuria naktinis užpildymas.

Testinės aplinkos rinkinys sudarytas taip, kad išbandytų įdomius kelius, ne tik laimingąjį:

external_ref Ką demonstruoja
SBX-LODGING-1 … -3 ariami laukai su išgulimo požymiu SAR serijoje
SBX-MOWING-1, -2 pievos su dviem šienavimais per sezoną
SBX-DROUGHT-1, -2 2023 m. sausra: NDVI deficitas, aukšta LST, žemas vandens streso indeksas
SBX-SMALL-1 1,7 ha - Sentinel-3 atmeta su insufficient_resolution
SBX-NEW-1 jokios istorijos - kiekviena anomalija atsako baseline_not_ready
SBX-FIELD-01 … -11 įprasti laukai, penkios kultūros

Pasirinkite vieną ir išsaugokite jo id:

Terminal window
export PARCEL=$(curl -s "$BASE/parcels?limit=25" -H "Authorization: Bearer $KEY" \
| python -c "import sys,json;d=json.load(sys.stdin)['data'];print([p['parcel_id'] for p in d if p['external_ref']=='SBX-FIELD-01'][0])")
Terminal window
curl -s "$BASE/parcels/$PARCEL/indices?index=NDVI&from=2025-04-01&to=2025-09-30" \
-H "Authorization: Bearer $KEY"
{
"parcel_id": "prc_2TWVCTXEDC6Q3EMYKP2N",
"index": "NDVI",
"unit": "ratio",
"from": "2025-04-01",
"to": "2025-09-30",
"observations": 46,
"series": [
{
"date": "2025-04-02",
"value": 0.2066,
"reason": null,
"quality": "good",
"valid_pct": 86.1,
"cloud_pct": 13.9,
"satellite": "sentinel-2-l2a",
"scene_id": "SBX_S2_2025-04-02",
"min_value": 0.1466,
"max_value": 0.2666,
"anomaly": {
"baseline_season": 2025,
"baseline_mean": 0.1776,
"baseline_std": 0.0162,
"baseline_n_obs": 7,
"z": null,
"z_reason": "std_below_threshold",
"anomaly_pct": 16.35,
"pct_of_baseline": 116.35,
"reason": null
}
}
],
"baseline": {
"season": 2025, "years": 3, "years_used": [2022, 2023, 2024],
"quality": "medium", "source": "parcel",
"mean": 0.3696, "p10": 0.3118, "p90": 0.4303, "windows": 41,
"method_version": "baseline-1.0", "config_hash": "79e8c933fad8dddd",
"reason": null, "district_parcels": null
},
"processing": {"inner_buffer_m": 10.0, "applied": true, "reason": null},
"data_status": {"s2_history_months": 60, "s1_history_months": 60,
"baseline_ready": true, "baseline_source": "parcel",
"baseline_quality": "high", "baseline_years": 4},
"method_version": "indices-1.0",
"config_hash": "7dd2ff70f042c405"
}

(Sutrumpinta iki pirmo iš 46 stebėjimų; config_hash reikšmės yra tos, kurias API grąžino 2026-10-03, ir keičiasi kaskart, kai derinama metodo konfigūracija - tam jos ir skirtos.)

Keturi dalykai, kuriuos verta žinoti apie šį atsakymą:

  1. value: null yra atsakymas, ne klaida. Kai pikseliai buvo debesuoti, eilutė vietoj skaičiaus turi reason. Klaidingas skaičius draudimo ar kredito sprendime kainuoja daugiau nei trūkstamas.
  2. anomaly yra kiekvienam stebėjimui ir lygina reikšmę su tuo pačiu metų dienos langu per ankstesnius pilnus sezonus, tad reiškia „palyginti su tuo, kaip šis laukas paprastai atrodo dabar”, o ne „palyginti su praėjusia savaite”. z yra null su z_reason, kai istorinė sklaida per maža dalybai - pirma eilutė aukščiau yra būtent toks atvejis (std_below_threshold): anomaly_pct vis tiek sako, kad laukas 16 % virš normos, bet z-balas iš 0,016 standartinio nuokrypio neišgalvojamas.
  3. baseline (viršutiniame lygyje) sako, kiek ta norma tvirta: kiek sezonų ir DOY langų į ją pateko ir ar ji iš paties sklypo, ar iš rajono atsarginio varianto. Jo quality vertina sezonus, kurie maitino šią seriją (čia trys - 2022-2024, pilni sezonai, kuriuos penkerių metų testinės aplinkos istorija turi prieš 2025 m. - todėl medium), o data_status.baseline_quality vertina visą sklypo istoriją - jie skiriasi sąmoningai. ?quality=good palieka tik vienos klasės stebėjimus (good, partial arba cloud_masked), o observations tada skaičiuoja tai, kas grąžinta.
  4. method_version ir config_hash fiksuoja algoritmą ir jo slenksčius. Jie niekada nekeičiami atgaline data: perskaičiavimas su naujais slenksčiais gauna naują versijos eilutę.

Testinėje aplinkoje scene_id prasideda SBX_, o satellite yra kolekcijos pavadinimas: istorija ten modeliuota, ne atsisiųsta, kad nemokama testinė aplinka neeikvotų tikrų palydovinio apdorojimo vienetų. Formos, slenksčiai ir kodo keliai identiški gyvai aplinkai.

Nauji sklypai baseline dar neturi. Tada endpoint’as atsako 422 baseline_not_ready - išbandykite SBX-NEW-1 - ir galite arba laukti parcel.data_ready webhook pranešimo, arba prašyti neapdorotos serijos su &baseline=false. Kiekvienas tokio tipo 422 (baseline_not_ready, insufficient_data, insufficient_resolution, vegetation_masked) turi antraštę X-Agrovisio-Not-Billable: kvietimas niekada neapmokestinamas.

8-12 minutė - likę produktai, po vieną kvietimą

Section titled “8-12 minutė - likę produktai, po vieną kvietimą”
Terminal window
AUTH="Authorization: Bearer $KEY"
# Radaro įvykiai: išgulimas, šienavimas, derliaus nuėmimas, arimas, ataugimas
curl -s "$BASE/parcels/$PARCEL/sar/events?from=2025-05-01&to=2025-09-01" -H "$AUTH"
# Orai: prognozė, istorija, agroklimato rodikliai
curl -s "$BASE/parcels/$PARCEL/weather/forecast?days=7" -H "$AUTH"
# Paviršiaus temperatūra ir vandens stresas (reikia >= 5 ha)
curl -s "$BASE/parcels/$PARCEL/thermal?from=2025-06-01&to=2025-08-31" -H "$AUTH"
# Derliaus prognozė su pasikliautinuoju intervalu
curl -s "$BASE/parcels/$PARCEL/yield-forecast" -H "$AUTH"
# Rizikos balas: šeši komponentai, procentilio rangas, veiksniai
curl -s "$BASE/parcels/$PARCEL/risk-score" -H "$AUTH"
# BŽŪP: monokultūros taisyklės patikra - keturi tos pačios kultūros sezonai yra
# pažeidimas (trys iš eilės dar leidžiami: limit_years yra 3)
curl -s "$BASE/cap/rotation/check?country=LT&history=2022:winter_wheat,2023:winter_wheat,2024:winter_wheat,2025:winter_wheat" -H "$AUTH"

Rotacijos patikra į istoriją aukščiau atsako compliant: false su vienu rotation_violation (consecutive_years: 4, limit_years: 3); išmeskite 2022 m. sezoną, ir tas pats kvietimas atsako compliant: true - ta pati kultūra gali būti auginama daugiausia tris sezonus iš eilės.

Batch yra pirmos klasės kelias, ne priedas - 500 sklypų viena užklausa. Tai skaitymas, kuris šiaip yra POST, todėl jam, kaip ir kiekvienam POST, reikia Idempotency-Key, o atsako 200 ir pirmą kartą, ir kartojant:

Terminal window
curl -s -X POST "$BASE/indices/batch" -H "$AUTH" \
-H 'Content-Type: application/json' \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"parcel_ids":["'"$PARCEL"'"],"index":"NDVI","from":"2025-06-01","to":"2025-08-31"}'

12-15 minutė - žalos vertinimas, asinchroninis modelis

Section titled “12-15 minutė - žalos vertinimas, asinchroninis modelis”

Viskas, kas trunka ilgiau nei turėtų trukti užklausa, grąžina 202 su darbu. Išsaugokite job_id - jo reikės kitame bloke:

Terminal window
JOB=$(curl -s -X POST "$BASE/damage/assess" -H "$AUTH" \
-H 'Content-Type: application/json' \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"parcel_id":"'"$PARCEL"'","event_date":"2025-07-04","peril":"storm","claim_ref":"CLM-1"}')
echo "$JOB"
export JOB_ID=$(echo "$JOB" | python -c "import sys,json;print(json.load(sys.stdin)['job_id'])")
{"job_id": "job_7A1MNPQRSTVWXYZ01234", "status": "queued",
"poll_url": "/v1/jobs/job_7A1MNPQRSTVWXYZ01234", "estimated_seconds": 90}

Sklypas aukščiau yra įprastas laukas, tad atsakymas į klausimą „ar 2025 m. liepos 4 d. audra jį sugadino” yra ne: damage_pct: 0.0, pasikliovimas 0.58 ir tai patvirtinantis sertifikatas - įrodymas, kad „nieko neįvyko”, kurio žalų ekspertui reikia lygiai taip pat, kaip ir žalos skaičiaus. Tą pačią užklausą nukreipkite į SBX-LODGING-1 su 2025-07-04, kad pamatytumėte audrą, kuri lauką tikrai išguldė (damage_pct: 85.0), ir į SBX-FIELD-05 su 2024-07-19 - antrą atvejį be žalos; tikslūs kiekvieno jų skaičiai - kitame skyriuje.

Tada arba tikrinkite GET /v1/jobs/{job_id}, arba - geriau - užsiprenumeruokite vieną kartą:

Terminal window
curl -s -X POST "$BASE/webhooks" -H "$AUTH" \
-H 'Content-Type: application/json' -H "Idempotency-Key: $(uuidgen)" \
-d '{"url":"https://hooks.example.com/agrovisio",
"events":["damage.completed","parcel.data_ready","job.failed"]}'

Atsakymas pasirašymo paslaptį turi vieną kartą - mūsų pusėje ji saugoma užšifruota ir vėliau perskaityti jos negalima. Praradę 201, pakartokite tą pačią užklausą su tuo pačiu Idempotency-Key per 24 val. ir gausite tą patį atsakymą (Idempotent-Replay: true); vėliau - ištrinkite endpoint’ą ir užregistruokite naują. URL privalo būti https:// ir rodyti į viešą host’ą: loopback, privatūs, link-local ir debesų metaduomenų adresai atmetami su 400 validation_error (detail.fields[0].field: "url"). Kiekvienas pristatymas turi keturias antraštes:

X-Agrovisio-Event: damage.completed
X-Agrovisio-Delivery: dlv_9c2e...
X-Agrovisio-Timestamp: 1758200400
X-Agrovisio-Signature: v1=<hex hmac_sha256(secret, "<timestamp>.<body>")>

Parašą tikrinkite pastovaus laiko palyginimu ir atmeskite viską, kieno laiko žyma nuo jūsų laikrodžio skiriasi daugiau nei 300 s - tas langas yra apsauga nuo pakartojimo. Kodas abiem kalbomis - webhook gide.

Baigtas darbas assessment_id turi savo result bloke - ten gaunate id, o su juo išsaugotą vertinimą ir jo sertifikatą:

Terminal window
ASSESSMENT_ID=$(curl -s "$BASE/jobs/$JOB_ID" -H "$AUTH" \
| python -c "import sys,json;print(json.load(sys.stdin)['result']['assessment_id'])")
curl -s "$BASE/damage/$ASSESSMENT_ID" -H "$AUTH"
curl -s -o certificate.pdf "$BASE/damage/$ASSESSMENT_ID/certificate.pdf" -H "$AUTH"

Sertifikatas išduodamas ne kiekvienam vertinimui. Jam reikia confidence >= 0.50; žemiau PDF maršrutas atsako 422 insufficient_data su detail.reason: confidence_below_certificate_threshold, faktiniu pasikliovimu ir slenksčiu, o pats vertinimas grąžinamas įprastai su certificate: null. Apmokestinama nuo 0,40, tad yra juosta, kurioje vertinimas apmokestintas, bet nesertifikuotas - tikrinkite, ar certificate yra, niekada nelaikykite PDF savaime suprantamu.

Vertinimas pasako, kas pajudino skaičių: confidence_components išvardija kadrų skaičiaus, bazinės linijos, optikos ir intervalo dedamąsias bei direction_factor. Skaudžiausiai tai kerta SAR kelyje. Kai optinė serija nepatvirtina radaro signalo krypties, vertinimas gauna įspėjimą direction_not_confirmed ir 0,8 daugiklį - ir būtent toks yra SBX-LODGING-1 demo. Šviežiai paleisti 2026-10-03 (metodas damage-1.0, config_hash e3f43ecf61375aa8) keturi testinės aplinkos atvejai atsako:

Sklypas, įvykis damage_pct damage_pct_ci confidence Sertifikatas
SBX-LODGING-1, 2025-07-04, storm 85.0 [50.0, 85.0] 0.405 ne - PDF atsako 422, confidence_below_certificate_threshold; su gyvu raktu apmokestinama (virš 0,40), bet nesertifikuojama
SBX-LODGING-3, 2024-07-03, storm 50.0 [50.0, 51.75] 0.5113 taip - viena šimtąja
SBX-FIELD-05, 2024-07-19, storm 0.0 [0.0, 0.0] 0.46 ne - „nieko neįvyko” rezultatas, kuris apmokestinamas, bet nesertifikuojamas (įspėjimai no_sar_baseline, direction_not_confirmed)
SBX-DROUGHT-1, 2023-07-20, drought null null null ne - darbas baigiasi su status: insufficient_data, reason: no_ndvi_observations, billable: false

Trys iš keturių sąmoningai guli per kelias šimtąsias nuo 0,40 ir 0,50 ribų: būtent ten lūžta kodas, kuris PDF laiko savaime suprantamu. Sausros atvejis yra sąžiningos nesėkmės kelias - baigtas darbas, kurio rezultatas sako, kad duomenys skaičiaus nepagrindė, nieko nekainuoja ir sertifikato neturi. Paleiskite jį, kad pamatytumėte formą:

Terminal window
# praėjus minutei po ankstesnio vertinimo (testinėje aplinkoje 2 per minutę):
DROUGHT=$(curl -s "$BASE/parcels?limit=25" -H "$AUTH" \
| python -c "import sys,json;d=json.load(sys.stdin)['data'];print([p['parcel_id'] for p in d if p['external_ref']=='SBX-DROUGHT-1'][0])")
curl -s -X POST "$BASE/damage/assess" -H "$AUTH" \
-H 'Content-Type: application/json' -H "Idempotency-Key: $(uuidgen)" \
-d '{"parcel_id":"'"$DROUGHT"'","event_date":"2023-07-20","peril":"drought","claim_ref":"CLM-2"}'
# tada tikrinkite darbą lygiai kaip aukščiau; GET /damage/{id} grąžina status: insufficient_data

Skaičiai aukščiau yra iš šviežių vertinimų. Penki iš anksto paruošti įrašai (SBX-CLAIM-...) yra paskutinio atkūrimo išsaugoti rezultatai ir gali turėti senesnį config_hash bei kitokį pasikliovimą - rašymo metu išsaugoti SBX-CLAIM-2024-003 (LODGING-3) ir SBX-CLAIM-2023-005 (DROUGHT-1) skiriasi nuo šviežio paleidimo. Dar viena priežastis šakotis pagal certificate, o ne pagal įsimintą skaičių.


Penkios taisyklės, sutaupančios palaikymo užklausą

Section titled “Penkios taisyklės, sutaupančios palaikymo užklausą”
  1. Idempotency-Key privalomas kiekvienam POST - įskaitant BŽŪP skaičiavimus ir POST /indices/batch, kurie yra skaitymai. Siųskite po UUID kiekvienai loginei operacijai ir naudokite tą patį kartojant. Pakartojimas grąžina pradinį rezultatą su Idempotent-Replay: true ir niekada neapmokestinamas antrą kartą. Lygiagrečios užklausos su tuo pačiu raktu vykdomos nuosekliai: vykdoma tik viena, kitos gauna 409 idempotency_conflict su detail.state: "in_progress" ir Retry-After antrašte (daugiausia 120 s) - palaukite ir pakartokite, gausite išsaugotą rezultatą.
  2. Šakokite pagal error.type, niekada pagal error.message. Tipai yra sutartis, žinutės - proza. Pilnas katalogas - klaidų kataloge, o /v1/openapi.json kiekvienai operacijai deklaruoja kiekvieną klaidos statusą su ta pačia ErrorEnvelope schema (error.type ten yra katalogo enum), tad generuotas klientas klaidas išskaito teisingai. POST, kuris atsako 201/202, deklaruoja ir 200 - 1 taisyklės idempotentišką pakartojimą.
  3. Saugokite X-Request-Id. Jis yra kiekviename atsakyme, sėkmingame ar ne. Be jo nieko negalime atsekti.
  4. Stebėkite limitų antraštes. X-RateLimit-Limit, -Remaining, -Reset, -Pool. Trys pool’ai: standard (kiekvienas GET), write (visi kiti metodai - sklypai, POST /indices/batch, BŽŪP skaičiavimai, webhook’ų valdymas), expensive (žalos vertinimas, indekso produkto backtest, portfelio rizikos atnaujinimas). 429 pasako, kuris pool’as išseko. Kiekvienas pool’as turi ir sekundės „burst” limitą (burst jūsų plane): toks 429 prideda X-RateLimit-Burst-Limit, X-RateLimit-Burst-Reset ir Retry-After: 1, o X-RateLimit-Remaining toliau rodo likusį minutės biudžetą.
  5. Puslapiavimas cursor principu. next_cursor perduokite atgal kaip ?cursor=, kol has_more taps false. Offset’ai nepalaikomi - ?offset=, kaip ir bet kuris nežinomas užklausos parametras ar filtro reikšmė, yra 400 validation_error, niekada tyliai nefiltruotas sąrašas.
Testinė aplinka (sk_test_) Gyva (sk_live_)
Duomenys 20 bendrų LT sklypų, 5 metų istorija jūsų sklypai
Jūsų pačių sklypai iki 10 papildomų, 24 mėn. istorija plano kvota
Copernicus kvietimai jokių - istorija iš anksto užpildyta tikri, eilėje ir užpildomi
Apmokestinimas usage_event rašomas, billable: false visada apmokestinama
Limitai 60 standard / 10 write / 2 expensive per minutę pagal planą
Webhook pristatomi iš tikrųjų, kad išbandytumėte savo endpoint’ą pristatomi
Kas naktį sklypai atkuriami; jūsų testinės aplinkos sklypai ištrinami nepaliesta

Testinė ir gyva aplinkos yra atskiri pasauliai: gyvas raktas nemato testinės aplinkos sklypų, testinis - gyvų. Testinis raktas mato 20 bendrų sklypų ir savus: bendri grąžinami su shared: true (nebent jūsų raktas yra juos valdanti demonstracinė paskyra), visiems kitiems yra tik skaitomi (DELETE atsako 404) ir atkuriami kas naktį; savi turi shared: false ir skaičiuojami į 10 sklypų testinės aplinkos kvotą. Kiekvienas sklypas turi environment: "test" arba "live", tad visada žinote, į ką žiūrite.

Ko tikėtis pridėjus savo sklypą testinėje aplinkoje: istoriją jis turi tik jei jo geometrija mums jau žinoma (sklypai talpykloje pagal geometrijos maišą, tad perbraižyta bendro sklypo versija paveldi jo duomenis). Visiškai naujas laukas atsako baseline_not_ready ir tuščias serijas, nes testinė aplinka sąmoningai niekada nepaleidžia palydovinio apdorojimo. Gyvi raktai jį paleidžia, ir sklypas tampa naudojamas užpildymui baigiantis - stebėkite data_status arba prenumeruokite parcel.data_ready.

  1. Patvirtinkite el. paštą, tada portale atverkite Billing ir paspauskite Activate live: pasirinkite planą bei atsiskaitymo ciklą ir užpildykite įmonės bei sąskaitų duomenis. Taip pateikiama aktyvavimo užklausa, o ją siunčiant mokestis neimamas. Gyvas naudojimas apmokamas pagal sąskaitą; kortelės formos portale nėra.
  2. Agrovisio operacijų komanda užklausą peržiūri per vieną darbo dieną, perjungia planą ir pirmą sk_live_ raktą perduoda saugiu kanalu (raktai niekada nesiunčiami el. paštu). Toliau gyvus raktus kuriate patys skiltyje Keys. Testinės aplinkos raktas veikia toliau - dauguma komandų savo CI su juo vykdo visą laiką.
  3. Tą patį kodą nukreipkite į tą patį bazinį adresą su nauju raktu. Daugiau niekas nesikeičia: tie patys endpoint’ai, tos pačios atsakymų formos, tos pačios method_version reikšmės.
Planas Sklypai Produktai Standard / write / expensive per min.
Sandbox 10 savų visi 60 / 10 / 2
Starter 1 000 parcels, indices, weather 600 / 60 / 5
Growth 10 000 + sar, thermal, yield, damage, index 2 000 / 200 / 20
Scale 50 000 + risk, cap 6 000 / 600 / 60
Enterprise neribota visi 20 000 / 2 000 / 200

Apmokestinama pagal mėnesio aktyvių sklypų piką, ne pagal užklausų skaičių - to paties sklypo užklausa tūkstantį kartų nekainuoja nieko papildomai. Žalos vertinimai ir indeksų produktų publikavimas yra vieninteliai vienetiniai mokesčiai, o žalos vertinimas, pasibaigęs insufficient_data, neapmokestinamas visai. Daugiau - apmokestinimo gide.

Atsakymai, sudaryti iš palydovinių duomenų, turi X-Data-Attribution: Contains modified Copernicus Sentinel data. Šią atribuciją privalote išlaikyti platindami išvestines reikšmes. Nacionaliniai kadastro duomenys (LT Registrų centras, LV Kadastrs, PL GUGiK) naudojami pagal atitinkamas atvirų duomenų licencijas.

Mūsų skaičiai yra išvestiniai palydoviniai įverčiai, ne matavimai vietoje. Žalos sertifikatas yra techninė ataskaita pagal dokumentuotą metodologiją, ne eksperto teisinė išvada. Jūs liekate atsakingi už teisinį pagrindą stebėti sklypus, kuriuos mums siunčiate (paskolos sutartis, draudimo polisas); sklypo geometrija su kadastro numeriu gali identifikuoti fizinį asmenį, todėl niekada nerašykite žmogaus vardo į external_ref. Daugiau - duomenų atribucijoje.

Klaidų katalogas, endpoint sąrašas ir Postman kolekcija generuojami iš veikiančio API, ne rašomi ranka, ir ši svetainė juos importuoja iš naujo kiekvieno build metu. Du patikrinimai saugo šio puslapio pažadus ir abu vykdomi prieš kiekvieną leidimą:

  • scripts/qa/int_15min.py - pereina tiksliai aukščiau aprašytą kelią vien su šiuo puslapiu ir testinės aplinkos raktu ir nepavyksta, jei kuris žingsnis lūžta;
  • scripts/qa/int_postman_check.py - paleidžia kiekvieną Postman kolekcijos užklausą į testinę aplinką ir nepavyksta ties pirmu ne-2xx.

Kiekvienas šio puslapio curl blokas paskutinį kartą paleistas pažodžiui su testine aplinka 2026-10-03; čia cituojami skaičiai yra tai, ką ji tą dieną atsakė. Užpildymo skriptas išspausdina sklypų id ir penkis paruoštus žalos vertinimus (SBX-CLAIM-2025-001 … SBX-CLAIM-2023-005); tai išsaugoti rezultatai, kurie, kaip pažymėta aukščiau, gali atsilikti nuo šviežio tos pačios užklausos paleidimo.

support@agrovisio.ai - visada nurodykite X-Request-Id, endpoint’ą ir UTC laiką. Būsenos puslapis: /status ir status.agrovisio.ai. SLA: 99,5 % mėnesio pasiekiamumas, p95 iki 400 ms standartiniams skaitymams.