Evergreen Comply developer resources

Evergreen Comply Public API

A small, read-only REST API for agents and integrations that need current training data, commercial MVR prices, and live ordering availability. No API key is required.

Quick start

Request the catalog with a normal HTTP GET. Responses use JSON, allow cross-origin reads, and include quota metadata.

curl -sS \
  -H "Accept: application/json" \
  https://www.evergreencomply.com/api/public/v1/courses

Agent-assisted MVR purchases

Discover the product, quote the license state, then open the returned checkout link. The buyer approves the purchase and the driver signs their own authorization. Guest checkout needs no account; reports require authenticated access. Public APIs cannot take payment or expose driver records.

Read the live MVR buying and recovery guide

Endpoints

GET
/api/public/v1/mvr/catalog

Discover live commercial MVR products, pricing and purchase handoffs.

operationId: getMvrCatalog

GET
/api/public/v1/mvr/quote?state=CA&cdl=false

Get an exact initial quote and current ordering availability. The example selects MVR without CDLIS.

operationId: getMvrQuote

GET
/api/public/v1/mvr/state-fees

List supported issuing jurisdictions and pass-through DMV fees.

operationId: listMvrStateFees

GET
/api/public/v1/status

Confirm API availability and discover documentation.

operationId: serviceStatus

GET
/api/public/v1/courses

List public courses with prices, audiences, and regulations.

operationId: listPublicCourses

GET
/api/public/v1/courses/{courseId}

Retrieve one course by an ID returned from the catalog.

operationId: getPublicCourse

Structured errors

API failures use application/problem+json with a stable code, HTTP status, readable detail, and concrete resolution hint. Unknown API paths use the same shape.

{
  "type": "https://www.evergreencomply.com/developers#errors",
  "title": "Course not found",
  "status": 404,
  "detail": "No public course was found for that ID.",
  "message": "No public course was found for that ID.",
  "code": "course_not_found",
  "resolution": "List the catalog and use a returned ID.",
  "docs_url": "https://www.evergreencomply.com/developers"
}

Rate limits

Anonymous clients can make 120 requests per 60-second window. Every response includes RateLimit-Policy and RateLimit, plus compatibility limit, remaining, and reset headers. A 429 response includes Retry-After. Limits are enforced per client in each serving region, and upstream abuse protection may also apply.

Versioning and deprecation

Stable endpoints use a major version in the path, currently /api/public/v1. Breaking changes receive a new major version. Deprecated routes advertise Deprecation, Sunset, and successor Link headers before removal.

Read the complete API versioning policy. The unversioned compatibility routes are deprecated on February 1, 2027 and sunset on August 1, 2027.

Machine discovery