Request/Response Examples
Detailed examples for common CLE Engine API use cases.
Table of Contents
- Simple Jurisdiction Query
- Surname-Based Compliance (CA, IL)
- Birth Date-Based Compliance (NJ, TX, PR)
- Admission Date-Based Compliance (CO, FL, WA)
- Reporting Category-Based Compliance (MN, PA)
- Reporting Period End Date (NY, OR)
- Non-Mandatory CLE States (DC, MD, MI, SD)
- Handling Missing Fields
Simple Jurisdiction Query
For jurisdictions with calendar-year or fixed-date reporting that require no attorney-specific data.
Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "AL"
}'
Response
{
"due_date": "2026-12-31",
"cycle_start": "2026-01-01",
"cycle_end": "2026-12-31",
"credits_required": null,
"reporting_group": null,
"cle_required": true,
"required_fields": [],
"missing_fields": [],
"citations": [
{
"source_id": "al_cle_attorney_information",
"excerpt_id": null,
"url": "https://www.alabar.org/cle/attorney-information/"
},
{
"source_id": "al_cle_faq",
"excerpt_id": null,
"url": "https://www.alabar.org/cle/faq/"
}
],
"notes": "Annual requirement runs on the calendar year; credits completed by Dec 31."
}
Other Simple Jurisdictions
- Arizona (AZ): July 1 - June 30, report by September 15
- Connecticut (CT): Calendar year
- Hawaii (HI): Calendar year
- Kentucky (KY): July 1 - June 30
- Louisiana (LA): Calendar year, report by January 31
- Missouri (MO): July 1 - June 30, report by July 31
- Nevada (NV): Calendar year with extension period
- Oklahoma (OK): Calendar year, report by February 15
Surname-Based Compliance (CA, IL)
California and Illinois assign compliance groups based on the first letter of the attorney's last name.
California Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "CA",
"last_name": "Garcia"
}'
California Response
{
"due_date": "2025-04-01",
"cycle_start": null,
"cycle_end": "2025-03-29",
"credits_required": null,
"reporting_group": "Group 1",
"cle_required": true,
"required_fields": ["last_name"],
"missing_fields": [],
"citations": [
{
"source_id": "ca_mcle_requirements",
"url": "https://www.calbar.ca.gov/legal-professionals/maintaining-compliance/mcle/mcle-requirements"
},
{
"source_id": "ca_mcle_compliance_groups",
"url": "https://www.calbar.ca.gov/legal-professionals/maintaining-compliance/mcle/compliance-groups"
}
],
"notes": "Compliance group assigned by last name."
}
California Compliance Groups
| Group | Last Name Letters | Cycle End | Report Deadline |
|---|---|---|---|
| 1 | A-G | March 29, 2025 | April 1, 2025 |
| 2 | H-M | March 29, 2027 | March 30, 2027 |
| 3 | N-Z | March 29, 2026 | March 30, 2026 |
Illinois Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "IL",
"last_name": "Johnson"
}'
Illinois Response
{
"due_date": "2026-06-30",
"cycle_start": "2024-07-01",
"cycle_end": "2026-06-30",
"credits_required": null,
"reporting_group": "Last name A-M",
"cle_required": true,
"required_fields": ["last_name"],
"missing_fields": [],
"citations": [...],
"notes": "Two-year reporting period runs July 1 to June 30 based on last name grouping; compliance due June 30."
}
Birth Date-Based Compliance (NJ, TX, PR)
These jurisdictions use birth month to determine compliance groups or cycles.
New Jersey Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "NJ",
"birth_date": "1985-03-15"
}'
New Jersey Response
{
"due_date": "2026-12-31",
"cycle_start": "2025-01-01",
"cycle_end": "2026-12-31",
"credits_required": null,
"reporting_group": "Group 1",
"cle_required": true,
"required_fields": ["birth_date"],
"missing_fields": [],
"citations": [
{
"source_id": "nj_cle_faq",
"url": "https://www.njcourts.gov/attorneys/cle/faq"
}
],
"notes": "Compliance period ends Dec 31 of the assigned even/odd year; certification is tied to annual registration."
}
New Jersey Groups
| Group | Birth Months | Compliance Years |
|---|---|---|
| Group 1 | January - June | Even years (2026, 2028...) |
| Group 2 | July - December | Odd years (2025, 2027...) |
Texas Request
Texas requires both birth date and admission date for newly licensed attorneys.
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "TX",
"birth_date": "1990-08-22",
"admission_date": "2022-11-01"
}'
Puerto Rico Request
Puerto Rico uses a triennial (3-year) cycle based on birth month.
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "PR",
"birth_date": "1988-05-10",
"admission_date": "2018-06-15"
}'
Admission Date-Based Compliance (CO, FL, WA)
These jurisdictions calculate cycles based on when the attorney was admitted to the bar.
Colorado Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "CO",
"admission_date": "2021-05-15"
}'
Colorado Response
{
"due_date": "2025-01-31",
"cycle_start": "2021-05-15",
"cycle_end": "2024-12-31",
"credits_required": null,
"reporting_group": null,
"cle_required": true,
"required_fields": ["admission_date"],
"missing_fields": [],
"citations": [...],
"notes": "First compliance period ends Dec 31 of the third full calendar year after admission."
}
Florida Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "FL",
"admission_date": "2019-10-01"
}'
Florida Response
{
"due_date": "2026-12-31",
"cycle_start": "2024-01-01",
"cycle_end": "2026-12-31",
"credits_required": null,
"reporting_group": "Group 2",
"cle_required": true,
"required_fields": ["admission_date"],
"missing_fields": [],
"citations": [...],
"notes": "Three-year compliance cycle; 33 credits required including 5 ethics, 5 technology, 3 mental health/substance abuse."
}
Washington Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "WA",
"admission_date": "1995-06-20"
}'
Reporting Category-Based Compliance (MN, PA)
These states assign attorneys to numbered compliance groups.
Minnesota Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "MN",
"reporting_category": "2"
}'
Minnesota Response
{
"due_date": "2025-08-31",
"cycle_start": "2022-07-01",
"cycle_end": "2025-06-30",
"credits_required": null,
"reporting_group": "Category 2",
"cle_required": true,
"required_fields": ["reporting_category"],
"missing_fields": [],
"citations": [...],
"notes": "Reporting deadline is August 31 following the end of the reporting period."
}
Pennsylvania Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "PA",
"reporting_category": "1"
}'
Pennsylvania Response
{
"due_date": "2026-04-30",
"cycle_start": "2025-05-01",
"cycle_end": "2026-04-30",
"credits_required": null,
"reporting_group": "Group 1",
"cle_required": true,
"required_fields": ["reporting_category"],
"missing_fields": [],
"citations": [...],
"notes": "Compliance period is May 1 through April 30; annual deadline is April 30."
}
Pennsylvania Groups
| Group | Compliance Period | Annual Deadline |
|---|---|---|
| 1 | May 1 - April 30 | April 30 |
| 2 | September 1 - August 31 | August 31 |
| 3 | January 1 - December 31 | December 31 |
Reporting Period End Date (NY, OR)
New York and Oregon assign specific reporting period end dates to each attorney.
New York Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "NY",
"reporting_period_end": "2026-06-30"
}'
New York Response
{
"due_date": "2026-06-30",
"cycle_start": "2024-07-01",
"cycle_end": "2026-06-30",
"credits_required": null,
"reporting_group": null,
"cle_required": true,
"required_fields": ["reporting_period_end"],
"missing_fields": [],
"citations": [...],
"notes": "Biennial reporting cycle; use the reporting period end date provided by the NY attorney registration portal."
}
Oregon Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "OR",
"reporting_period_end": "2027-04-30"
}'
Non-Mandatory CLE States (DC, MD, MI, SD)
Some jurisdictions do not require mandatory CLE.
District of Columbia Request
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "DC"
}'
District of Columbia Response
{
"due_date": null,
"cycle_start": null,
"cycle_end": null,
"credits_required": null,
"reporting_group": null,
"cle_required": false,
"required_fields": [],
"missing_fields": [],
"citations": [
{
"source_id": "dc_cle_requirements",
"url": "https://www.dcbar.org/for-lawyers/continuing-legal-education/mcle-credit/cle-obligations-for-d-c-bar-members"
}
],
"notes": "DC Bar does not have mandatory CLE requirements; newly admitted attorneys must complete a mandatory course within 12 months of admission."
}
Other Non-Mandatory States
| State | Notes |
|---|---|
| Maryland (MD) | Mandatory CLE postponed |
| Michigan (MI) | No CLE requirements |
| South Dakota (SD) | Non-mandatory CLE state |
Handling Missing Fields
When required fields are not provided, the API returns information about what's missing.
Request Without Required Field
curl -X POST https://api.cle-engine.com/v1/compute \
-H "Content-Type: application/json" \
-H "X-API-Key: cle_your_api_key_here" \
-d '{
"jurisdiction": "TX"
}'
Response
{
"due_date": null,
"cycle_start": null,
"cycle_end": null,
"credits_required": null,
"reporting_group": null,
"cle_required": true,
"required_fields": ["birth_date", "admission_date"],
"missing_fields": ["birth_date", "admission_date"],
"citations": [...],
"notes": "Missing required fields for due date calculation: birth_date, admission_date."
}
Best Practice
Always check the missing_fields array in responses. If it's non-empty, provide the missing data and retry.
response = api.compute(jurisdiction="TX")
if response["missing_fields"]:
print(f"Please provide: {', '.join(response['missing_fields'])}")
else:
print(f"Due date: {response['due_date']}")