Skip to main content
Leaf tracks data processing usage, not API access. You have unlimited API calls to retrieve processed data. Charges occur when Leaf successfully processes your data (pulls a file, creates a boundary, processes an image), not when you download or query results afterward.

How usage tracking works

Usage is based on spatially unique acres processed per Leaf user. A few rules to keep in mind:
  • The same geographic area processed under different Leaf users counts separately for each user.
  • Repeated retrieval of the same processed data does not incur additional charges.
  • If processing fails, the area is not counted.
  • Deleted boundaries count toward usage for the current contract term only.

What gets tracked

Each service tracks area with a specific product identifier:
Product IDWhat it tracks
UNIFIED_AREATotal unique area consumed across all services during the contract period
FIELDS_BOUNDARYField boundary area processed during the contract period
AUDIT_FIELDS_BOUNDARYCurrent total boundary area (not bounded by contract dates)
OPERATIONS_FILEMachine file area processed during the contract period
OPERATIONS_OPERATIONField operation area (machine files intersecting boundaries) during the contract period
SATELLITE_PROCESS_PLANETPlanet satellite imagery area processed during the contract period
SATELLITE_PROCESS_SENTINELSentinel satellite imagery area processed during the contract period

Contracts

Contracts are automatically generated when you start using Leaf services. Each contract tracks usage for one product type with annual cycles. Use the contracts endpoints to find your contract IDs and check quota limits.

Tracking usage

There are several ways to monitor consumption: API endpoints. The billing endpoints give you programmatic access to usage data at both the API owner and individual Leaf user level. API owner level shows spatially unique area across all your users (overlapping boundaries between users are deduplicated). This gives the overall footprint of your account. Leaf user level shows each user’s individual processing. These values may include spatial overlap between users, which is expected and reflects how billing is calculated. The difference between the API owner total and the sum of all Leaf user totals indicates spatial overlap across your organization. Alerts. Set up webhooks for events like fieldBoundaryCreated, providerFileProcessingFinished, and operationProcessingFinished to track processing as it happens. X-Total-Count header. Most GET All endpoints include this header in the response, giving you a quick count of resources without paging through all results. CSM reports. Your Customer Success Manager can provide usage and billing reports broken down by API owner and Leaf user.

Endpoints

Base URL: https://api.withleaf.io/services/billingapplication/api
ActionMethodPath
List contractsGET/billing/contracts
Get contract detailsGET/billing/contracts/{contractId}
Get daily usage summaryGET/billing/contracts/{contractId}/consumption
Get usage range (API owner)GET/billing/contracts/{contractId}/consumption/api-owner
Get usage range (Leaf user)GET/billing/contracts/{contractId}/consumption/leaf-user/{leafUserId}
The daily usage summary returns current-day data by default. Pass a timestamp parameter to get data for a specific day. The range endpoints accept startTime and endTime parameters and return daily consumption breakdowns.

Avoiding unexpected charges

  • Assign provider credentials to one Leaf user per actual customer. Re-connecting the same data under multiple Leaf users counts each user’s acreage separately.
  • Use customDataSync and organizationDataSync to limit which fields and organizations Leaf processes.
  • Create a separate API owner for test environments (e.g., leaf-test@yourcompany.com) to isolate test usage from production billing.

What to do next

Last modified on March 23, 2026