Skip to content

Billing

This content is not available in your language yet.

Billing is by the monthly peak of active parcels, never by request count. Query the same parcel a thousand times and it costs nothing extra: the API is meant to be called often. The only per-unit charges are the ones listed under metered units.

Plan Parcels included Products Rate limits (standard / write / expensive per min) Price per month
Sandbox 10 own (plus 20 shared) all 60 / 10 / 2 free, never billed
Starter 1 000 parcels, indices, weather 600 / 60 / 5 EUR 490
Growth 10 000 + sar, thermal, yield, damage, index 2 000 / 200 / 20 EUR 1 900
Scale 50 000 + risk, cap 6 000 / 600 / 60 EUR 4 900
Enterprise unlimited all, SLA credits, optional dedicated environment 20 000 / 2 000 / 200 (negotiable) from EUR 9 000

Parcels above the included quota:

Plan Overage per parcel per month
Starter not available - the 1 001st parcel answers 429 parcel_quota_exceeded
Growth EUR 0.30
Scale EUR 0.22
Enterprise EUR 0.18

An annual contract carries a 15 % discount and is billed yearly; an annual plan can move to monthly only when the annual period ends.

Once a day, at 00:05 UTC, we count your active parcels (monitored and not deleted) and keep the maximum for the billing period:

active = COUNT(parcels WHERE monitoring AND deleted_at IS NULL)
period.parcels_peak = MAX(period.parcels_peak, active)

The invoice line for parcels uses parcels_peak, not an average. Two consequences worth planning for:

  • Deleting a parcel frees the quota, not the peak. Removing 600 parcels on the 20th makes room for 600 new ones, but the period is still billed on the earlier peak. Delete before the period starts if you want a smaller invoice.
  • Uploading 50 000 parcels for one day costs the same as keeping them all month. Import what you intend to monitor.

GET /v1/account shows parcels_active, parcels_peak, overage_parcels, period_start and period_end at any time, so you can see the number before the invoice does. overage_parcels is how far the peak sits above parcel_quota. A plan or quota upgrade applies to the current period immediately - the overage is recomputed against the new quota - while a downgrade only takes effect from the next period. When a period ends, its overage is invoiced once, at the per-parcel overage price in force at that moment; a later price change never touches a closed period.

Unit Price When it is charged
Damage assessment EUR 35 (Enterprise: EUR 22 from the 500th assessment in a calendar year) when the job finishes with status: completed and confidence >= 0.40
Damage certificate (PDF) included issued when confidence >= 0.50; not a separate charge
Historical backfill EUR 0.03 per parcel per year of history when a live parcel’s history is backfilled beyond the included window
Parametric index definition EUR 600 per index per year once, at POST /v1/index-definitions/{id}/publish; backtests included
Integration support EUR 1 200 one-off optional; waived on an annual contract
Dedicated environment EUR 1 500 per month Enterprise option

The unit price is fixed at the moment of the event and written into the usage record, so a later price change never rewrites history.

  • Anything done with a sandbox key. Every sandbox usage event is written with billable: false.
  • Results we could not honestly produce. A damage assessment that ends as insufficient_data, or with confidence below 0.40, is recorded for audit and costs nothing. Any call that ends in 422 insufficient_data, baseline_not_ready, insufficient_resolution or vegetation_masked carries the X-Agrovisio-Not-Billable header (its value is the error type), so a metered call can be matched to the missing usage charge in your own logs.
  • Idempotent replays. Repeating a POST with the same Idempotency-Key returns the stored result with Idempotent-Replay: true and is never charged twice. Publishing an index definition twice is charged once.
  • Draft index definitions, their evaluations and their backtests. Only publication starts the annual fee.
  • Requests. There is no per-request price on any plan.

Confidence is billed from 0.40 and certified from 0.50. In the band between them an assessment is charged but has no certificate: the JSON result is complete and defensible, the PDF is withheld because a signed document would lend the number more weight than the data carries. Branch on certificate being present; never assume the PDF exists because the assessment was billed.

  • Upgrade takes effect immediately, with proration: credit for the unused part of the old plan, charge for the new one.
  • Downgrade takes effect at the start of the next period. If the current parcels_peak is above the target plan’s quota the downgrade is refused with 409 quota_exceeded_for_plan - delete parcels first, or pick a bigger plan.

An invoice is generated at the end of each period with one line per item: plan, overage, metered units. Each line references the usage event interval it was built from, and the portal lets you download the usage events of a period as CSV. VAT is applied by country and VAT number (reverse charge for EU businesses with a valid number).

Usage is reconciled daily: the sum of billable usage events is compared with the billing provider’s usage record, and an invoice is never issued automatically while the two disagree.

An overdue invoice escalates in three steps, all visible in the API before anything is switched off:

Days overdue What happens
7 every response carries X-Agrovisio-Warning: payment_overdue; GET /v1/account shows payment_overdue_since
14 the account is suspended: every endpoint answers 402 payment_required except GET /v1/account, which keeps reporting the state (detail.status: "suspended")
45 the account is closed; GET /v1/account answers 402 as well

Settling the invoice clears payment_overdue_since and restores access automatically.