Connect your firm's CasePeer account

CasePeer Integration
⚠

Before You Start

CasePeer works like MyCase rather than like Clio or Dropbox: your firm asks CasePeer to create an API application for you, and enters the credentials they issue into LawLink once. That request can take a few days — start it before you plan to use the integration.

Your CasePeer account needs API access

CasePeer enables API access per firm. If a request later fails with "forbidden" even though you connected successfully, ask CasePeer support to confirm the application has been activated and has the scopes it needs.

Connect as someone who can see the cases you want

LawLink acts with the permissions of the CasePeer user who authorises it. A case, note or document that user cannot open in CasePeer cannot be read through LawLink either.

🔑

Getting Your Credentials

LawLink does not hold a shared CasePeer application. Each firm gets its own, issued by CasePeer support, so your firm's data is reached only through your firm's own credentials.

Ask CasePeer support for API client credentials

Contact CasePeer support and ask them to issue your firm a Client ID and Client Secret for connecting LawLink.

They will ask for a redirect URI. It is always this:

https://app.lawlink.ai/api/v1/casepeer/callback

Send them exactly that, character for character. Only CasePeer support can set or change it, and anything else stops the connection from completing.

Keep the two values safe until you connect

Treat the Client Secret like a password. You enter it into LawLink once; it is stored encrypted and never shown again, to you or anyone else.

🔗

Connecting

Connect CasePeer in LawLink — the first person at your firm

Go to Integrations → CasePeer, enter the Client ID and Client Secret, and click Connect. You are taken to CasePeer to sign in and approve LawLink, then returned to LawLink.

Everyone else just clicks Connect

Once one person at your firm has connected, colleagues leave both fields blank and click Connect — they reuse your firm's saved application and approve with their own CasePeer login.

Stay connected

CasePeer access tokens last 24 hours, and LawLink renews them automatically when the connection is used. If CasePeer ever stops accepting the connection (for example after two weeks without use), LawLink alerts you that it is failing and you reconnect from Integrations. If CasePeer support ever reissues your credentials, reconnect with the new values.

📁

Cases & Clients

Reading cases

Cases can be filtered by name, client, open or closed status, status name, case type, and created or modified date. Results are paged by a cursor: pass the next_page_token from one page to get the next.

Creating a case

CasePeer requires the date of injury (doi) and a client. A new client is created with the case; an existing one is linked by id. The case name is set by CasePeer, not by LawLink.

Clients and the address book

Clients are the injured people your cases are about. The address book is everyone else — medical providers, adjusters, lien holders and experts. A contact's type is set when it is created and cannot be changed later.

🩺

Personal Injury Detail

Beyond cases, LawLink reads and writes the personal-injury records CasePeer keeps on each case.

Parties and insurance

Defendants, the client's insurance and each defendant's insurance (read only).

Damages

Health liens (read, create, update), case costs (read, create), the incident, and injuries (read, update). Through your AI assistant, every write is shown to you as a preview first and only sent once you approve it.

CasePeer has no delete in its API. A mistaken lien or cost has to be corrected in CasePeer itself.

Notes, tasks and reminders

Notes can be added and edited. Tasks can be created (CasePeer has no task update) and need both the caseworker creating the task and the one it is directed to. Reminders attach to a task.

📄

Documents

Reading and downloading

Documents, folders, versions and photos can be listed by case. A download link is valid for 20 minutes — use it straight away.

Adding documents

CasePeer does not accept a file upload through its API. Instead it fetches a file from a web address you give it, in the background. The document shows as Pending until CasePeer has fetched it, then Completed (or Failed).

Your firm's document storage (CasePeer, OneDrive or Dropbox) must be connected inside CasePeer, or CasePeer rejects new documents.

📡

API Usage

Call APIs with Token & Headers

Send your LawLink API token in the Authorization header. LawLink holds the CasePeer OAuth tokens, refreshes them, and converts every request and response to and from CasePeer's JSON:API format — you send plain JSON and get flat records back.

API Request Structure

Authorization: Bearer YOUR_ACCESS_TOKEN Content-Type: application/json # Every write takes the same body, in CasePeer's own field names: { "attributes": { ... }, # the record's own fields "relationships": { ... } # links by id, e.g. {"case": "1234"}, or a list of ids }

🔑 Key Points:

  • Lists answer {"data": [...], "total_count": n, "next_page_token": "..."}. Pass page_token back to get the next page; limit goes up to 1000.
  • Every write is checked before it reaches CasePeer. An unknown or missing field is refused with the full list of accepted ones, for example CasePeer cost.create: missing required field(s) ['contact'].
  • CasePeer has no delete, and tasks cannot be updated once created.

Find and create cases

Filter cases by name, client, open or closed, status name, case type, and created or modified date. A new case needs a date of injury (doi) and a client — created with the case as below, or an existing one linked with "relationships": {"caseclient": "10"}.

Example: List Open Cases

# Open cases whose name contains "roe", newest first curl -X GET \ "https://app.lawlink.ai/api/v1/casepeer/cases?closed=false&name=roe&sort=-created&limit=50" \ -H "Authorization: Bearer ACCESS_TOKEN"

Example: Create a Case

curl -X POST \ "https://app.lawlink.ai/api/v1/casepeer/cases" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "attributes": { "doi": "2026-06-18", "incident_description": "Rear-ended at a red light", "caseclient": { "firstname": "Jane", "lastname": "Roe", "email": "jane@example.com" } }, "relationships": { "casetype": "3" } }'

CasePeer names the case itself. Case type ids, statuses and other pick-lists come from GET /api/v1/casepeer/lookups/{kind}.

Record damages

Health liens and costs belong to a case and to a contact from the firm's address book (GET /api/v1/casepeer/contacts) — the provider holding the lien, or the payee of the cost.

Example: Add a Health Lien

curl -X POST \ "https://app.lawlink.ai/api/v1/casepeer/health-liens" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "attributes": { "original_cost": 2450.00, "treatment_description": "Physical therapy, 12 visits" }, "relationships": { "case": "1234", "contact": "5678" } }'

Example: Add a Case Cost

curl -X POST \ "https://app.lawlink.ai/api/v1/casepeer/costs" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "attributes": { "amount": 125.50, "memo": "Medical records request" }, "relationships": { "case": "1234", "contact": "5678" } }'

Example: Add a Note

curl -X POST \ "https://app.lawlink.ai/api/v1/casepeer/case-notes" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "attributes": { "note": "Spoke to the adjuster; demand package due Friday." }, "relationships": { "case": "1234" } }'

Add and download documents

Give CasePeer a URL it can fetch. It answers straight away with download_status: "Pending" and pulls the file in the background; read the document again until it is Completed or Failed.

Example: Add a Document from a URL

curl -X POST \ "https://app.lawlink.ai/api/v1/casepeer/case-documents" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "attributes": { "docname": "MRI report.pdf", "docfile": "https://files.example.com/mri-report.pdf" }, "relationships": { "case": "1234", "folder": "88" } }'

Example: Get a Download Link

curl -X GET \ "https://app.lawlink.ai/api/v1/casepeer/case-documents/4321/download-link" \ -H "Authorization: Bearer ACCESS_TOKEN" // Response — the URL works for 20 minutes { "url": "https://...", "expires_in_seconds": 1200 }

A document CasePeer is still fetching answers 410 with “not ready yet”. Wait and try again; do not re-add it.

Use the Universal API

The same cases, clients, notes, tasks, costs, documents and caseworkers are available through LawLink's platform-agnostic endpoints, in the same shape as every other connected system — including the statute-of-limitations date and defendants on each matter.

Example: Open Matters

curl -X GET \ "https://app.lawlink.ai/api/v1/universal/matters?platform_id=casepeer&status=open&query=roe" \ -H "Authorization: Bearer ACCESS_TOKEN"
💡

Good to Know

Times are UTC unless you say otherwise

Give date-times with their offset (for example 2026-01-01T09:00:00-05:00); CasePeer reads a time without one as UTC.

Filters CasePeer does not offer are refused, not ignored

If you ask for a filter CasePeer does not support — for example searching clients by name — LawLink tells you so instead of returning an unfiltered list.