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/coursesAgent-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 guideEndpoints
/api/public/v1/mvr/catalogDiscover live commercial MVR products, pricing and purchase handoffs.
operationId: getMvrCatalog
/api/public/v1/mvr/quote?state=CA&cdl=falseGet an exact initial quote and current ordering availability. The example selects MVR without CDLIS.
operationId: getMvrQuote
/api/public/v1/mvr/state-feesList supported issuing jurisdictions and pass-through DMV fees.
operationId: listMvrStateFees
/api/public/v1/statusConfirm API availability and discover documentation.
operationId: serviceStatus
/api/public/v1/coursesList public courses with prices, audiences, and regulations.
operationId: listPublicCourses
/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
- /developers/resources — authentication, webhook, MCP, and CLI status
- /api — JSON service index
- /openapi.json — OpenAPI 3.1 contract
- /llms.txt — agent-oriented site guide
- Public GitHub repository — source, AGENTS.md, and CLI package