Skip to main content

Two perspectives

The Public API exposes every case through the lens of the firm holding the API key:
  • Sent Cases — cases your firm created and sent to another firm (sender perspective).
  • Received Referrals — referrals another firm sent to you (receiver perspective).
Both perspectives share the same underlying data, but each returns only the fields and actions relevant to that role. See the endpoint examples for full request/response details:

Objects

  • Case — Primary record containing title, jurisdiction, case type, and client details.
  • Referral — A case handoff from a sending firm to a receiving firm. A single case can have multiple referrals (re-referrals), each with its own status and lifecycle.
  • Base Case — The canonical case shared across all of its referrals.

Statuses

Every referral progresses through a defined set of statuses. The full enum is:
StatusDescription
draftCase created but not yet sent to a receiving firm.
sentReferral dispatched to the receiving firm.
receivedReceiving firm has acknowledged the referral.
under_evaluationReceiving firm is evaluating the case.
investigatingActive investigation is underway.
signedClient retainer has been signed.
in_litigationCase is in active litigation.
closingCase is in the closing process.
wonCase resolved with a favorable outcome.
lostCase resolved with an unfavorable outcome.
rejectedReceiving firm declined the referral.
withdrawnSending firm withdrew the referral.
closedCase is fully closed.

Closing status

When a referral reaches a terminal state through the close action, a closingStatus is required:
Closing StatusMeaning
won_settledCase was won or settled.
lostCase was lost.
no_longer_pursuingFirm elected to stop pursuing the case.

Status flow

draft -> sent -> received -> under_evaluation -> investigating -> signed -> in_litigation -> closing -> closed
                                                                                                 \-> won
                                                                                                 \-> lost
        sent -> rejected   (by receiving firm)
        sent -> withdrawn  (by sending firm)
Use the GET /sent-cases/{id}/available-statuses or GET /received-referrals/{id}/available-statuses endpoint to discover which transitions are valid for the current state before attempting a status change.

Permissions

  • Sending firm — Owns initial case creation. Can edit sender-owned fields (tier, source) after the case is sent. Can withdraw a referral.
  • Receiving firm — Can update notes, financial estimates, phase, lead attorney, and other referral fields after acknowledgment. Can reject, advance, or close a referral.
  • Both firms — Can read case details and referral status history through their respective perspective endpoints.

Refer and re-refer logic

A referral is created when a sending firm sends a draft case to a receiving firm.
  • POST /sent-cases/{id}/refer sends a draft case to a receiving firm or creates a new referral on an existing case (re-refer). Each new referral receives an incremented sequenceNumber.
  • Only the sending firm (owner of the base case) can refer or re-refer.
  • An active network relationship between the sending and receiving firms is required.
  • The referrals sub-resource (/cases/{baseCaseId}/referrals) provides granular lifecycle actions on individual referrals: acknowledge, begin-investigating, sign, start-litigation, close, reject, and withdraw.
# Create a case as a draft
POST /sent-cases

# Send it to a receiving firm (initial refer)
POST /sent-cases/{id}/refer
  { "referentFirmId": "...", "notes": "..." }

# Later, re-refer the same case to a different firm
POST /sent-cases/{id}/refer
  { "referentFirmId": "<different-firm-id>", "notes": "..." }

Common field glossary

Fields that appear across case and referral responses:
FieldTypeDescription
cmsIdstring | nullExternal case management system ID — the first non-null value from integrations (Dear Legal, Neos, Clio, SmartAdvocate, Salesforce). Used for flexible ID resolution alongside UUID and reference number.
tierinteger | nullCase priority tier (1-5). Set by the sending firm. Higher values indicate higher priority.
ratedTierinteger | nullTier rating assigned by the receiving firm after evaluation.
sourcestring | nullOrigin of the case (e.g., “Website Lead”, “Attorney Referral”, “Advertisement”). Free-text field set by the sending firm.
isRetainerSignedbooleanWhether the client retainer agreement has been signed. Set to true automatically by the sign lifecycle action, or can be set on case creation.
requiresUpdatebooleanSystem flag indicating the case has pending actions or stale data that the firm should review.
sequenceNumberintegerThe referral’s position in the chain (starts at 1 for the first referral, increments on re-refer).
clientFeeAgreementPercentagenumber | nullFee agreement percentage expressed as a decimal between 0 and 1 (e.g., 0.33 = 33%).
sendingFirmPercentagenumber | nullSending firm’s share expressed as a whole number between 0 and 100 (e.g., 25 = 25%).
clientFeeAgreementPercentage uses a 0-1 scale while sendingFirmPercentage uses a 0-100 scale. This matches the OpenAPI spec constraints.

Error handling

All error responses follow a consistent envelope with error.code, error.message, and meta.requestId. See Error Handling for the full error code reference table, status code guide, and troubleshooting patterns.