⚡ Verge Direct API
​Quick, Self-Contained Route Planning

The Verge Direct API is designed for fast, stateless integrations. With a single endpoint, you can send field geometry and input parameters and receive a fully planned route as GeoJSON — no platform setup or state management required.


Perfect for partners and developers who want to quickly add Verge’s advanced path planning technology into their own solutions without building or syncing a full integration.


Who It’s For

  • Farm Management Information Systems (FMIS):
    Instantly add route planning and AB Line generation to your platform without re-engineering your core product.

  • Robotics & Autonomy Developers:
    Offload complex path planning to Verge and let your vehicles focus on navigation and task execution.

  • Analytics & Operational Tools:
    Generate multiple path plans and summarize key metrics like total time, headland distance, wheel-trafficked area, and overlaps to analyze field efficiency.

  • Researchers & Academic Projects:
    Access advanced agricultural path planning for experiments and robotics research without needing full enterprise setup.

  • Internal Farm Tools:
    Automate plan generation for fleets or service providers without adding extra user management or syncing.


🚀 How It Works

  • Endpoint:POST /v1/direct/path-plan

  • Input: Polygon geometry and parameters (machine size, headland settings, direction preferences)

  • Output: Path plan as GeoJSON


🔑 Key Benefits

  • One Call → One Plan: No multiple endpoints or state tracking needed.

  • Fast Integration: Plug-and-play for partners looking to deliver route planning quickly.

  • Stateless Design: Every request is self-contained, with no user or field data stored.

  • Enterprise-Grade Planning: Uses the same underlying planning technology as Verge Platform.


🛠️ Verge Platform API
​Full Access to the Verge Ecosystem

The Verge Platform API gives developers and partners complete access to the same services and data that power the Verge application. This is the ideal solution for enterprise integrations, complex workflows, and custom applications that need to work seamlessly with Verge’s ecosystem.


With a broad set of endpoints and deeper access to data and operations, the Platform API enables you to build fully integrated, automated solutions for planning, managing, and executing field operations.


Who It’s For

  • Enterprise FMIS Providers:
    Sync boundaries, projects, and operational data with Verge for a fully integrated digital farming experience.

  • OEMs and Precision Ag Equipment Vendors:
    Build advanced machine workflows, integrate with telematics platforms, and support cross-device planning and execution.

  • Agronomy & Service Providers:
    Automate field planning, manage multi-customer data, and build large-scale operational dashboards.

  • Custom Application Developers:
    Use Verge as a foundational platform for specialized planning, logistics, or agronomic tools.

🔧 Capabilities

  • Read/write access to fields, projects, and plans

  • User + permission management

  • Support for route creation workflows

  • Integration with external platforms

🔑 Key Benefits

  • Rich, multi-endpoint access to Verge systems

  • OAuth2 authentication & secure account linking

  • Scalable for enterprise and multi-tenant use cases


Contact API Support for our full documentation

Preview Platform API

Launch Pad API Reference

Version: v1

Base Path: N/A

 

AccountApi

·        POST /api/account/register-external

·        POST /api/account/assert-user-external-companies

·        POST /api/account/assert-new-external-companies

·        POST /api/account/resend-invite/{id}

·        POST /api/account/register-invite

·        POST /api/account/register

·        POST /api/account/demo-company

·        POST /api/account/check-user-source

·        POST /api/account/check-user

·        POST /api/account/login

·        POST /api/tokens/{tokenId}

·        GET /api/tokens/{tokenId}/exchange

·        POST /api/account/refresh

·        POST /api/externallogin

·        POST /api/trimble-connections

·        POST /api/oauth/initiate

·        POST /api/account/token

·        GET /api/oauth/users/{userId}/companies

·        GET /api/oauth/users-companies

·        POST /api/account/recover

·        GET /api/account/is-confirmed/{userId}

·        GET /api/account/confirm-account

·        GET /api/account/confirm-email

·        POST /api/account/profile

·        POST /api/user/edit

·        POST /api/create-demo-company

·        POST /api/account/copy-demo-company-fields

AdminApi

·        GET /api/admin/dem-execute/boundary/{boundaryId}

·        GET /api/admin/dem-raster/{boundaryId}

·        GET /api/admin/satellite-imagery-processing/{boundaryId}

·        POST /api/admin/satellite-imagery-processing

·        POST /api/admin/test-field-decomposition

·        POST /api/admin/admin-user

·        POST /api/admin/copy-company

Analytics

·        POST /api/analytics-events

Boundary

·        GET /api/vboundary/{boundaryId}

·        GET /api/boundaries/{boundaryId}/simple

·        GET /api/boundaries/{boundaryId}/detailed

·        GET /api/boundaries/{boundaryId}/geojson

 Summary: Get field geometry as GeoJSON

·        GET /api/boundaries/{boundaryId}/wkt

 Summary: Get field geometry as WKT

·        GET /api/boundaries/{boundaryId}/kml

 Summary: Get field geometry as KML

BulkGuidance

·        POST /api/bulk-guidance

 Summary: Endpoint to generate bulk guidance requests.

Converts the incoming request model to individual task requests

and starts a bulk guidance job.

·        GET /api/bulk-guidance/jobs/{jobId}

 Summary: Endpoint to fetch the status of a bulk guidance job.

Cnh

·        GET /api/cnh/{userId}/company

Company

·        POST /api/companies/table

·        POST /api/companies/list-summary

·        GET /api/companies/{companyId}/summary

·        GET /api/companies/{companyId}

·        DELETE /api/companies/{companyId}

·        POST /api/companies

·        POST /api/companies/{companyId}/uom

·        DELETE /api/companies/{companyId}/purge

·        GET /api/companies/{companyId}/empty

 Summary: Check if company has any boundaries

·        GET /api/organizations/{companyId}/boundaries

CompanyAccess

·        GET /api/users/{userId}/company-accesses

·        GET /api/company-accesses/{id}

·        DELETE /api/company-accesses/{id}

·        GET /api/company-accesses/{userId}/user

·        POST /api/company-accesses

CompanyEvent

·        POST /api/company-events

·        GET /api/company-events/{batchId}/company

·        GET /api/company-events/{companyId}

Customer

·        GET /api/notifications

·        DELETE /api/notifications/{id}

Dashboard

·        GET /api/companies/{companyId}/dashboards

·        GET /api/companies/{companyId}/dashboards/fieldwatch

·        GET /api/companies/{companyId}/dashboards/summary

Descriptor

·        GET /api/descriptors

·        POST /api/descriptors

·        GET /api/descriptors/missing

·        GET /api/descriptors/{id}

·        DELETE /api/descriptors/{id}

Equipment

·        GET /api/companies/{companyId}/equipments

·        GET /api/equipment/{equipmentId}

·        POST /api/equipment

·        POST /api/equipment/delete

·        GET /api/companies/{companyId}/operators

·        GET /api/operators/{operatorId}

·        POST /api/operators

EquipmentScenario

·        POST /api/equipment-scenarios/fields-summary

·        GET /api/equipment-scenarios/{equipmentScenarioId}

·        GET /api/equipment-scenarios/enterprise-company

·        POST /api/equipment-scenarios/{equipmentScenarioId}/path-plans

·        GET /api/equipment-scenarios/is-paid

·        POST /api/equipment-scenarios

·        GET /api/equipment-scenarios/jobs/{jobId}

EquipmentScenarioDetail

·        PUT /api/equipment-scenarios-details/{equipmentScenarioDetailsId}/total-cost-of-ownership

External

·        POST /api/external/companies/sync

ExternalApi

·        GET /api/user-api-keys

 Summary: Gets all API keys for the current user (masked)

·        POST /api/create-api-key

 Summary: Creates a new API key for the current user (returns full key)

·        DELETE /api/api-keys/{id}

 Summary: Deletes an API key by ID

ExternalBoundariesApi

·        GET /api/external-boundaries/providers

 Summary: Get the list of available providers.

·        GET /api/external-boundaries/boundaries

 Summary: Get boundaries for a specified bounding box from one or more providers.

·        GET /api/external-boundaries/coverage

 Summary: Gets the coverage for a provided bounding box from one or more providers.

Farm

·        GET /api/growers/{growerId}/farms

·        POST /api/growers/{growerId}/farms

·        GET /api/growers/{growerId}/farms/detailed

·        GET /api/companies/{companyId}/farms

·        GET /api/farms/{farmId}

·        DELETE /api/farms/{farmId}

·        GET /api/growers/{growerId}/farms/{farmId}/can-delete

FieldApi

·        DELETE /api/fields/{fieldId}

·        PUT /api/fields/{fieldId}

·        GET /api/fields/{fieldId}

·        POST /api/vBoundary/upsert

·        POST /api/fields/save

·        DELETE /api/boundaries/{boundaryId}

·        POST /api/boundaries/{boundaryId}/activate

·        GET /api/fields/{fieldId}/boundaries

·        GET /api/fields/{fieldId}/boundaries-basic

 Summary: Get basic boundaries for a field

·        GET /api/farms/{farmId}/fields-with-boundaries

·        GET /api/companies/{companyId}/fields-with-boundaries

·        POST /api/companies/{companyId}/field-tiles

·        GET /api/companies/{companyId}/field-tiles/{fieldId}

·        PUT /api/companies/{companyId}/fields/toggle-enabled

·        GET /api/growers/{growerId}/fields-with-boundaries

·        GET /api/organizations/{companyId}/fields

·        GET /api/farms/{farmId}/fields-boundaries-json

·        GET /api/growers/{growerId}/fields-boundaries-json

·        GET /api/companies/{companyId}/fields-boundaries-json

·        POST /api/fields/field-with-boundaries

·        GET /api/fields/{companyId}/fields-without-boundaries-count

FieldOperation

·        GET /api/fields/{fieldId}/operations

·        GET /api/companies/{companyId}/operations

·        GET /api/fields/{fieldId}/operations/{opId}

·        POST /api/companies/{companyId}/field-operations/table

·        POST /api/companies/{companyId}/field-operations/export

·        POST /api/field-operations/start

·        POST /api/field-operations/{fieldOpId}/log

·        POST /api/field-operations/{fieldOpId}

GeometryOperations

·        POST /api/geometry-operations/automatic-decomposition

 Summary: Get automatic field decomposition for straight edges of the field

·        POST /api/geometry-operations/manual-decomposition

 Summary: Get manual decomposition of the field

·        POST /api/geometry-operations/convert-jd-multipolygonsjson-to-geojson

·        POST /api/geometry-operations/convert-wkt-to-geojson

·        POST /api/geometry-operations/convert-geojson-to-wkt

·        POST /api/geometry-operations/geojson-change-crs-to-utm

·        POST /api/geometry-operations/wkt-change-crs-to-utm

·        POST /api/geometry-operations/geojson-wrappers-testing

Grower

·        GET /api/companies/{companyId}/growers

·        POST /api/companies/{companyId}/growers

·        GET /api/companies/{companyId}/growers/detailed

·        GET /api/growers/{growerId}

·        DELETE /api/growers/{growerId}

·        GET /api/growers/{growerId}/can-delete

Guidance

·        POST /api/guidance

·        POST /api/guidance/postprocess

·        POST /api/guidance/headlands

·        POST /api/guidance/pathplan

·        POST /api/guidance-post-process

·        GET /api/guidance/jobs/{jobId}

·        GET /api/guidance/post-processing-jobs/{jobId}

·        POST /api/geometry/smoothline

·        POST /api/geometry/smoothlines

 Summary: Apply smoothing for collection of lines. Supports specifying parameters per line

IntegrationsSync

·        GET /api/jd/companies/{companyId}/users

·        GET /api/companies-sync/jobs/{jobId}

·        POST /api/companies-sync/error-notification/{jobId}

Job

·        POST /api/job/{jobId}/cancel

 Summary: Cancels a job by its ID.

LocationSearch

·        GET /api/map-location-search/providers

 Summary: Get the list of available providers.

·        GET /api/map-location-search/search

 Summary: Get the search results (addresses) for a given query and providers.

·        GET /api/map-location-search/autocomplete

Lookup

·        GET /api/countries

·        GET /api/countries/detailed

·        GET /api/currencies/featured

·        GET /api/companies/{companyId}/fields

·        GET /api/user-labels/active

·        GET /api/user-labels

PathPlanApi

·        POST /api/path-plan

 Summary: Generates a path plan based on the provided request.

 Description: **Example Request**:

       

```json

{

"boundary": {"features":[{"geometry":{"coordinates":[[[-77.87241798124631,77.57498072115408],[-77.87241798124631,77.57360419289037],[-77.86596394851533,77.57360419289037],[-77.86596394851533,77.57498072115408],[-77.87241798124631,77.57498072115408]],[[-77.86946808701292,77.57489178700587],[-77.86946808701292,77.57447338385575],[-77.86715717024438,77.57447338385575],[-77.86715717024438,77.57489178700587],[-77.86946808701292,77.57489178700587]]],"type":"Polygon"},"properties":{},"type":"Feature"}],"type":"FeatureCollection"},

"operationType": "seeding",

"exteriorHeadlandPasses": 2,

"interiorHeadlandPasses": 1,

"equipment": {

    "swathWidth": 8.5,

    "trackWidths": [2.0, 2.5],

    "tireWidths": [1.2, 1.2]

}

}

```

PathPlanGroups

·        GET /api/path-plan-groups/path-plans/{pathPlanId}

·        GET /api/path-plan-groups/{pathPlanGroupId}

·        DELETE /api/path-plan-groups/{pathPlanGroupId}

·        POST /api/companies/{companyId}/path-plan-groups

·        GET /api/companies/{companyId}/path-plan-groups/names

·        POST /api/companies/{companyId}/path-plan-groups/summary

 Summary: Get the summary stats for all path plan groups for a company.

Summary orgs are:

a) Total number of path plans in the group

b) Company Total Trafficked area (for all plans in group)

c) Total time required to complete (for all plans in group)

·        POST /api/path-plan-groups/{pathPlanGroupId}/add-plans

 Summary: Add multiple plans to a group.

Pass path plan id's via request body.

·        POST /api/path-plan-groups/group-plans

·        POST /api/path-plan-groups/{pathPlanGroupId}/ungroup-plan/{pathPlanId}

·        DELETE /api/path-plan-groups/{pathPlanGroupId}/delete-plans

PathPlans

·        GET /api/path-plans/{pathPlanId}/geo

·        POST /api/path-plans/seasonal-summary-result

·        POST /api/path-plans/csv

·        POST /api/path-plans/upsert

·        GET /api/path-plans/{pathPlanId}/list-item

·        GET /api/boundaries/{boundaryId}/path-plan-ids

·        POST /api/companies/{companyId}/path-plans/tiles

·        POST /api/companies/{companyId}/dashboard-path-plan-summary

·        GET /api/fields/{fieldId}/path-plans

·        GET /api/fields/{fieldId}/path-plan-ids

·        GET /api/fields/{fieldId}/path-plan-names

·        DELETE /api/path-plans/{pathPlanId}

·        POST /api/path-plans/archive

·        POST /api/path-plans/{pathPlanId}/star

·        GET /api/path-plans/{pathPlanId}/rate

·        POST /api/path-plans/{pathPlanId}/rate

PathPlansExport

·        GET /api/path-plans-export/{batchId}/file

·        POST /api/path-plans-export

·        GET /api/path-plans-export/jobs/{jobId}

ReferenceLines

·        POST /api/reference-lines/default-reference-lines

 Summary: Get all reference lines for a boundary.

·        POST /api/reference-lines/default-straight-edges/geojson

 Summary: Get reference lines for a boundary but explicitly use a predefined geojson structure.

·        POST /api/reference-lines/default-straight-edges

 Summary: Get reference lines for a boundary from database or fetch from Guidance API using default parameters.

·        POST /api/reference-lines/default-contours/geojson

 Summary: Get default contour lines from database for a boundary but explicitly use a predefined geojson structure.

·        POST /api/reference-lines/default-contours

 Summary: Get default contour lines for a boundary. Performs a request to the Feature service and applies smoothing

·        POST /api/reference-lines/default-lines

 Summary: Get headland's default lines from database if any or calculate new default lines for a boundary

·        POST /api/reference-lines/default-lines-deprecated

 Summary: Get headland's default lines from database if any or calculate new default lines for a boundary

·        POST /api/reference-lines/default-lines/geojson

 Summary: Get headland's default lines from database for a boundary but explicitly use a predefined geojson structure

·        GET /api/boundaries/{boundaryId}/imported-lines

 Summary: Get imported lines that intersect boundary.

·        DELETE /api/companies/{companyId}/imported-lines

 Summary: Delete all imported line groups and imported lines associated with a company or importedLineGroup.

Pass in the company ID as a parameter. Pass in the importedLineGroup ID as an optional query string param.

Routing

·        POST /api/routes

 Summary: Generate routes for plan view

·        GET /api/routes/jobs/{jobId}

·        GET /api/routes/{routeId}

·        GET /api/path-plans/{pathPlanId}/routes

RoutingApi

·        POST /api/routes/create

 Summary: Creates a route from either a pathPlanId or geometry stored in PartFieldGeometry using job system.

 Description: Blocks until route returns from consumer, or times out

·        POST /api/routes/debug

 Summary: Returns information used in preprocessing of routes.

 Description: In particular returns the distance matrix of all nodes, but also

other potential information such as node demands, or statistics about runtimes.

·        GET /api/routes/gpx

 Summary: Creates a routing job and waits for its successful completion. Converts route to .gpxml format, which is

a specific XML format

 Description: There is a 1-1 correspondence between RouteParts generated and the respective elements in gpxml, where all

working parts are exported as LineString, and non-working as CurveString.

Worth noting is that there will be duplication of points between each part, depsite the preferred method

of gpxml to not repeat points.

·        POST /api/routes/construct

SeasonalPlanning

·        POST /api/wheel-traffic-summary

 Summary: Compute wheel traffic summary for a given set of path plans

·        POST /api/path-plans/{pathPlanId}/update-equipment-snapshot

 Summary: Update a plan that has no wheel traffic information

·        POST /api/wheel-traffic-summary/{pathPlanId}

 Summary: Compute wheel traffic summary using default values

·        POST /api/wheel-traffic-summary/{pathPlanId}/geojson

 Summary: Get tracks of wheel traffic summary for a given path plan

Setting

·        GET /api/healthz

·        GET /api/companies/{companyId}/settings

·        POST /api/companies/{companyId}/settings

·        POST /api/setting

·        POST /api/user-settings

·        GET /api/settings/{settingId}

·        DELETE /api/settings/{settingId}

·        POST /api/settings/validate

·        DELETE /api/settings/users/{userId}

·        GET /api/settings/distinct-names

·        POST /api/settings/table

·        GET /api/users/{userId}/settings

ShareApi

·        POST /api/shares/path-plan

·        POST /api/shares/equipment-scenario

·        GET /api/shares/{shareId}

·        DELETE /api/shares/{shareId}

·        GET /api/shares/{code}

·        POST /api/shares/{code}/plans

·        GET /api/shares/{code}/equipment-scenario

Trimble

·        POST /api/trimble/update-connected-orgs

UserApi

·        GET /api/user/current

·        POST /api/user/current/company-list

·        GET /api/user/current/company-list

·        POST /api/user/accept-terms

·        GET /api/user/app/{userId}

·        DELETE /api/users/{userId}

·        POST /api/users/list

 Summary: Get list of users for admins. List is utilized in the user autocomplete

Use this endpoint when you only need basic user information (no admin stats etc.)

·        POST /api/users/table

·        POST /api/users/list-summary

·        POST /api/contact

·        GET /api/users/{userId}/summary

·        GET /api/users/{userId}/last-engaged-company

·        GET /api/users/{userId}/admin-countries

·        GET /api/user/email-confirmed

UserEvent

·        POST /api/account/log-user-process

·        POST /api/account/log-user-feedback

·        GET /api/account/{userId}/logged-user-process

UserFileApi

·        POST /api/companies/{companyId}/user-files/file-upload

·        GET /api/companies/{companyId}/user-files

·        DELETE /api/user-files/{userFileId}

·        GET /api/user-files/{userFileId}

·        POST /api/user-files/{userFileId}/hide


Which API Should I Use?


Use the Direct API if...Use the Platform API if...
Do you need fast, no-login access to plans?✅ Yes❌ No
Are you integrating into a complex product or FMIS?❌ No✅ Yes
Do you need to store and manage fields, projects, or user data?❌ No✅ Yes
Do you want a simple, one-call interface to plan routes?✅ Yes❌ No
Do you need to customize projects, reuse routes, or track telemetry?❌ No✅ Yes