Docket4Me REST API

35 endpoints for litigation docket management. All authenticated endpoints require a Clerk session token via Authorization: Bearer <token>

Base URL: https://docket4.meFormat: JSONAuth: Clerk JWT

Cases

Create and manage litigation cases.

GET/api/casesAuth Required (Clerk)

List all cases for the authenticated user's organization.

Response

{ "cases": [{ "id": "string", "title": "string", "caseNumber": "string", "court": "string", "jurisdiction": "string", "status": "active|archived", "createdAt": "ISO8601", "updatedAt": "ISO8601", "entryCount": "number" }] }

Example

curl -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/cases
POST/api/casesAuth Required (Clerk)

Create a new case.

Request Body

{ "title": "string (required)", "caseNumber": "string", "court": "string", "jurisdiction": "fl_state | fl_federal | 11th_circuit" }

Response

{ "id": "string", "title": "string", "caseNumber": "string", "court": "string", "jurisdiction": "string", "status": "active", "createdAt": "ISO8601" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"title":"Smith v. Jones","caseNumber":"2024-CA-001234","jurisdiction":"fl_state"}' https://docket4.me/api/cases
GET/api/cases/[caseId]Auth Required (Clerk)

Get a single case by ID with full details.

Response

{ "id": "string", "title": "string", "caseNumber": "string", "court": "string", "jurisdiction": "string", "status": "string", "entries": [...], "threads": [...], "createdAt": "ISO8601", "updatedAt": "ISO8601" }

Example

curl -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/cases/<caseId>
PUT/api/cases/[caseId]Auth Required (Clerk)

Update case metadata (title, case number, court, jurisdiction, status).

Request Body

{ "title?": "string", "caseNumber?": "string", "court?": "string", "jurisdiction?": "string", "status?": "active|archived" }

Response

{ "id": "string", "title": "string", ...updated fields }

Example

curl -X PUT -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"status":"archived"}' https://docket4.me/api/cases/<caseId>
DELETE/api/cases/[caseId]Auth Required (Clerk)

Delete a case and all associated entries.

Response

{ "success": true }

Example

curl -X DELETE -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/cases/<caseId>

Entries

Manage docket entries (deadlines, events, tasks).

GET/api/entriesAuth Required (Clerk)

List entries with optional filters (caseId, status, dateRange).

Response

{ "entries": [{ "id": "string", "caseId": "string", "description": "string", "dueDate": "ISO8601", "triggerDate": "string", "status": "pending|verified|rejected", "source": { "page": "number", "text": "string" }, "calculationBreakdown": {...}, "confidence": "number" }] }

Example

curl -H "Authorization: Bearer <clerk_token>" "https://docket4.me/api/entries?caseId=<id>&status=pending"
PATCH/api/entries/[entryId]Auth Required (Clerk)

Update an entry's description, date, or metadata.

Request Body

{ "description?": "string", "dueDate?": "ISO8601", "notes?": "string" }

Response

{ "id": "string", ...updated entry }

Example

curl -X PATCH -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"notes":"Confirmed with partner"}' https://docket4.me/api/entries/<entryId>
DELETE/api/entries/[entryId]Auth Required (Clerk)

Delete a docket entry.

Response

{ "success": true }

Example

curl -X DELETE -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/entries/<entryId>
POST/api/entries/[entryId]/verifyAuth Required (Clerk)

Mark an entry as verified (human-approved).

Response

{ "id": "string", "status": "verified", "verifiedAt": "ISO8601", "verifiedBy": "string" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/entries/<entryId>/verify
POST/api/entries/[entryId]/rejectAuth Required (Clerk)

Reject an entry with a reason.

Request Body

{ "reason": "string" }

Response

{ "id": "string", "status": "rejected", "rejectedAt": "ISO8601", "rejectionReason": "string" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"reason":"Incorrect trigger date"}' https://docket4.me/api/entries/<entryId>/reject

Documents

Upload and process court documents (PDF extraction).

POST/api/documents/processAuth Required (Clerk)

Upload and process a single PDF document. Extracts events and calculates deadlines.

Request Body

FormData: { file: File (PDF), caseId: "string" }

Response

{ "documentId": "string", "entries": [{ "description": "string", "dueDate": "ISO8601", "triggerDate": "string", "confidence": "number", "source": { "page": "number", "text": "string" } }], "pageCount": "number", "processingTimeMs": "number" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -F "file=@order.pdf" -F "caseId=<id>" https://docket4.me/api/documents/process
POST/api/documents/batchAuth Required (Clerk)

Upload multiple documents for batch processing.

Request Body

FormData: { files: File[] (PDFs), caseId: "string" }

Response

{ "batchId": "string", "documentsQueued": "number", "status": "processing" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -F "files=@order1.pdf" -F "files=@order2.pdf" -F "caseId=<id>" https://docket4.me/api/documents/batch

Chat

AI-powered chat for document analysis and docketing assistance.

POST/api/chatAuth Required (Clerk)

Send a message to the AI assistant. Supports streaming responses. Can include document context.

Request Body

{ "messages": [{ "role": "user|assistant", "content": "string" }], "caseId?": "string", "threadId?": "string" }

Response

text/event-stream (SSE): data chunks with AI response, tool calls, and entry suggestions

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"messages":[{"role":"user","content":"Extract deadlines from this order"}],"caseId":"<id>"}' https://docket4.me/api/chat

Export

Export docket entries in various formats.

GET/api/entries/export/csvAuth Required (Clerk)

Export entries as CSV file.

Response

text/csv file download

Example

curl -H "Authorization: Bearer <clerk_token>" "https://docket4.me/api/entries/export/csv?caseId=<id>" -o entries.csv
GET/api/entries/export/excelAuth Required (Clerk)

Export entries as Excel (.xlsx) file.

Response

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet file download

Example

curl -H "Authorization: Bearer <clerk_token>" "https://docket4.me/api/entries/export/excel?caseId=<id>" -o entries.xlsx
GET/api/entries/export/standardAuth Required (Clerk)

Export entries formatted for standard docket format import.

Response

text/plain file with industry-standard format entries

Example

curl -H "Authorization: Bearer <clerk_token>" "https://docket4.me/api/entries/export/standard?caseId=<id>" -o standard-import.txt

Import

Import docket entries from external sources.

POST/api/entries/importAuth Required (Clerk)

Import entries from a CSV or structured file.

Request Body

FormData: { file: File (CSV), caseId: "string" }

Response

{ "imported": "number", "skipped": "number", "errors": [{ "row": "number", "message": "string" }] }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -F "file=@entries.csv" -F "caseId=<id>" https://docket4.me/api/entries/import

Calculator

Deadline calculation using deterministic rules engine.

POST/api/calculateAuth Required (Clerk)

Calculate a deadline date using FL Rule 2.514, FRCP Rule 6(a), or FRAP Rule 26. Returns the computed date with full calculation breakdown.

Request Body

{ "triggerDate": "YYYY-MM-DD", "dayCount": "number", "dayType": "calendar|business", "jurisdiction": "fl_state|fl_federal|11th_circuit", "serviceMethod?": "electronic|mail|hand", "direction?": "forward|backward" }

Response

{ "result": "YYYY-MM-DD", "triggerDate": "YYYY-MM-DD", "dayCount": "number", "dayType": "string", "jurisdiction": "string", "holidays": [{ "date": "YYYY-MM-DD", "name": "string" }], "adjustments": [{ "type": "string", "from": "YYYY-MM-DD", "to": "YYYY-MM-DD", "reason": "string" }], "breakdown": "string" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"triggerDate":"2026-03-01","dayCount":30,"dayType":"calendar","jurisdiction":"fl_state"}' https://docket4.me/api/calculate
POST/api/trial-orderAuth Required (Clerk)

Process a complete trial/scheduling order and generate ALL deadlines — mediation, countdown, chained, appearances, and trial period days. One call replaces dozens of individual calculations.

Request Body

{ "order_date": "YYYY-MM-DD", "trial_commencement_date": "YYYY-MM-DD", "trial_duration_weeks": "number (1-12)", "jurisdiction": "FL-STATE|FL-17TH|FL-SDFL|FL-MDFL|FL-NDFL|FEDERAL|SD-FLA|11TH-CIR", "calendar_call_date?": "YYYY-MM-DD", "calendar_call_time?": "string", "has_mediation_referral?": "boolean (default: true)", "include_trial_days?": "boolean (default: true)" }

Response

{ "order_date": "YYYY-MM-DD", "trial_commencement_date": "YYYY-MM-DD", "trial_duration_weeks": "number", "jurisdiction": "string", "total_entries": "number", "deadlines": [{ "entry_number": "number", "date": "YYYY-MM-DD", "category": "Deadline|Mediation|Trial Date|Appearance", "description": "string", "authority": "string", "calculation_note": "string", "is_conditional": "boolean" }], "trial_days": { "start_date": "YYYY-MM-DD", "end_date": "YYYY-MM-DD", "total_business_days": "number", "days": [{ "date": "YYYY-MM-DD", "day_number": "number", "day_of_week": "string" }] } }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"order_date":"2026-02-16","trial_commencement_date":"2026-11-16","trial_duration_weeks":4,"jurisdiction":"FL-STATE","calendar_call_date":"2026-11-12","calendar_call_time":"1:00 PM","has_mediation_referral":true}' https://docket4.me/api/trial-order
POST/api/public-calculatePublic

Public deadline calculator (no authentication required). Rate limited to 10 requests per minute per IP. Same calculation engine as the authenticated endpoint.

Request Body

{ "trigger_date": "YYYY-MM-DD", "day_count": "number", "computation_method": "auto|business_days|calendar_days|trial_period_countdown", "direction": "forward|backward", "jurisdiction": "FL-STATE|FL-17TH|FL-SDFL|FL-MDFL|FL-NDFL|FEDERAL|SD-FLA|11TH-CIR", "service_method?": "email|mail|hand|efiling", "trial_commencement_date?": "YYYY-MM-DD (required for trial_period_countdown)" }

Response

{ "deadline_date": "YYYY-MM-DD", "trigger_date": "YYYY-MM-DD", "day_count": "number", "computation_method": "string", "direction": "string", "jurisdiction": "string", "service_addon_days": "number", "explanation": "string", "steps": [{ "step_number": "number", "description": "string", "date": "YYYY-MM-DD|null", "rule": "string|null" }] }

Example

curl -X POST -H "Content-Type: application/json" -d '{"trigger_date":"2026-03-01","day_count":30,"computation_method":"auto","direction":"forward","jurisdiction":"FL-STATE"}' https://docket4.me/api/public-calculate

Audit

Audit trail and comparison tools.

GET/api/auditAuth Required (Clerk)

Get audit log for a case or entry. Tracks all changes, verifications, and exports.

Response

{ "events": [{ "id": "string", "type": "string", "userId": "string", "timestamp": "ISO8601", "details": {...} }] }

Example

curl -H "Authorization: Bearer <clerk_token>" "https://docket4.me/api/audit?caseId=<id>"
POST/api/audit/compareAuth Required (Clerk)

Compare AI-extracted entries against a manually-created docket for discrepancy detection.

Request Body

{ "caseId": "string", "manualEntries": [{ "description": "string", "dueDate": "YYYY-MM-DD" }] }

Response

{ "matches": "number", "mismatches": [{ "ai": {...}, "manual": {...}, "discrepancy": "string" }], "missing": [...], "extra": [...] }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"caseId":"<id>","manualEntries":[...]}' https://docket4.me/api/audit/compare

Billing

Subscription management via Stripe.

GET/api/billingAuth Required (Clerk)

Get current subscription status, usage, and plan details.

Response

{ "plan": "free|professional|enterprise", "status": "active|trialing|canceled", "documentsUsed": "number", "documentsLimit": "number", "currentPeriodEnd": "ISO8601" }

Example

curl -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/billing
POST/api/stripe/checkoutAuth Required (Clerk)

Create a Stripe checkout session for subscription upgrade.

Request Body

{ "priceId": "string", "successUrl?": "string", "cancelUrl?": "string" }

Response

{ "url": "string" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"priceId":"price_xxx"}' https://docket4.me/api/stripe/checkout
POST/api/stripe/portalAuth Required (Clerk)

Create a Stripe customer portal session for billing management.

Response

{ "url": "string" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/stripe/portal

Calendar

iCal feed generation for calendar subscriptions.

POST/api/calendar/generateAuth Required (Clerk)

Generate a unique iCal subscription URL for your docket entries.

Request Body

{ "caseIds?": ["string"], "includeVerifiedOnly?": "boolean" }

Response

{ "token": "string", "url": "string", "expiresAt": "ISO8601" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{}' https://docket4.me/api/calendar/generate
GET/api/calendar/[token]Public

Fetch iCal feed by token. Used by calendar apps (Google Calendar, Outlook, Apple Calendar).

Response

text/calendar (iCal .ics format)

Example

curl https://docket4.me/api/calendar/<token>

Team

Team and organization member management.

GET/api/teamAuth Required (Clerk)

List all team members in the current organization.

Response

{ "members": [{ "id": "string", "email": "string", "name": "string", "role": "admin|member", "joinedAt": "ISO8601" }] }

Example

curl -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/team
POST/api/teamAuth Required (Clerk)

Invite a new member to the organization.

Request Body

{ "email": "string", "role?": "admin|member" }

Response

{ "inviteId": "string", "email": "string", "status": "pending" }

Example

curl -X POST -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"email":"paralegal@firm.com","role":"member"}' https://docket4.me/api/team

Notifications

User notification management.

GET/api/notificationsAuth Required (Clerk)

Get notifications for the authenticated user (deadline reminders, verification requests, etc.).

Response

{ "notifications": [{ "id": "string", "type": "deadline_reminder|verification_request|export_complete", "title": "string", "body": "string", "read": "boolean", "createdAt": "ISO8601" }] }

Example

curl -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/notifications

User

User preference management.

GET/api/user/preferencesAuth Required (Clerk)

Get user preferences (default jurisdiction, notification settings, theme).

Response

{ "defaultJurisdiction": "string", "notifications": { "email": "boolean", "deadlineReminder": "boolean", "reminderDaysBefore": "number" }, "theme": "dark|light|system" }

Example

curl -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/user/preferences
PATCH/api/user/preferencesAuth Required (Clerk)

Update user preferences.

Request Body

{ "defaultJurisdiction?": "string", "notifications?": { "email?": "boolean", "deadlineReminder?": "boolean", "reminderDaysBefore?": "number" }, "theme?": "dark|light|system" }

Response

{ ...updated preferences }

Example

curl -X PATCH -H "Authorization: Bearer <clerk_token>" -H "Content-Type: application/json" -d '{"defaultJurisdiction":"fl_state"}' https://docket4.me/api/user/preferences

Health

System health monitoring.

GET/api/healthPublic

Health check endpoint. Returns service status and version.

Response

{ "status": "ok", "version": "string", "timestamp": "ISO8601", "services": { "database": "ok|degraded|down", "engine": "ok|degraded|down", "ai": "ok|degraded|down" } }

Example

curl https://docket4.me/api/health

Stats

Dashboard statistics and analytics.

GET/api/statsAuth Required (Clerk)

Get dashboard statistics (entry counts, upcoming deadlines, verification rate).

Response

{ "totalCases": "number", "totalEntries": "number", "pendingVerification": "number", "upcomingDeadlines": "number", "overdueEntries": "number", "verificationRate": "number", "documentsProcessed": "number" }

Example

curl -H "Authorization: Bearer <clerk_token>" https://docket4.me/api/stats