openapi: 3.1.0
info:
title: Lawmatics OAuth API
version: 1.22.0
description: 'The official Lawmatics REST API for legal CRM, client intake and law firm automation.
Manage matters (prospects), contacts, companies, custom forms and form entries, custom fields, events
and appointments, tasks, notes, files, tags, users, time entries, expenses, invoices and transactions.
Authentication is OAuth 2.0 authorization code grant; access tokens do not expire, there are no refresh
tokens, and Lawmatics does not currently support scopes - an authorized app receives full CRUD access
to the granted account.
All list endpoints support the shared query-parameter grammar documented in the Param Guide: `fields`
(field selection, one level deep, `fields=all` to expand), `page` (pagination), `sort_by`/`sort_order`,
and `filter_by`/`filter_on`/`filter_with` (one filter at a time; operators `=`, `!=`, `<=`, `<`, `>=`,
`>`, `like`, `ilike`, `null`, `not_null`).
Responses follow a JSON:API-style `data` / `attributes` / `relationships` envelope.'
contact:
name: Lawmatics API Support
email: api@lawmatics.com
url: https://docs.lawmatics.com/
termsOfService: https://www.lawmatics.com/terms-of-use
externalDocs:
description: Official Lawmatics RESTful API documentation (Postman)
url: https://docs.lawmatics.com/
servers:
- url: https://api.lawmatics.com
description: Lawmatics production API
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Addresses
description: An Address belongs to a Firm, a Contact, or Company.
- name: Collections
- name: Contacts
description: 'A Contact can be thought of as a collection of data about a "Person".
A Contact record is the base for all Contactables (Matters, Clients, and Companies).
Since Contact data reflects a person, and is a base record, it is shared via any Contactable associated
with the Contact.
For Example:
You be'
- name: Companies
- name: Custom Emails
- name: Custom Fields
- name: Custom Forms
description: 'NOTE: Field IDs for fields that are not considered "Standard", such as General fields,
and Custom fields, are referred to by special long-form uuids that are enumerated on the API details
page of the Custom Form in Lawmatics. (E.g. https://app.lawmatics.com/custom-forms/:custom_form_id/api-details).'
- name: Email Addresses
description: A Email Address is contact information that belongs to a Firm, Contact, or Company.
- name: Email Campaigns
- name: Email Campaign Stats
- name: Events (Appointments)
description: Events are also referred to in the app as "Appointments"
- name: Event Locations
description: These are Firm related Locations (for events) that can be configured in Firm settings.
- name: Event Types
description: 'Event Types define Event defaults, and can trigger automations, for common types of Events
created in Lawmatics.
Configuring Calendar Availability defaults is not currently supported by the API. Go to Settings ->
Event Settings to configure the Event Type in more detail.'
- name: Files
- name: Folders
- name: Matters (Prospects)
description: 'A Matter is a legal case, and the primary object in Lawmatics.
NOTE: You may see Matters referenced as "Prospects" or "PNCs". This is for legacy reasons, and we
are working to migrate away from these names internally.
When creating a new Matter it will be in status PNC. This stands for Potential N'
- name: Notes
- name: Payment Invoices
- name: Payment Expenses
- name: Payment Time Entries
- name: Payment Transactions
- name: Phone Numbers
description: A Phone Number is contact information that belongs to a Firm, Contact, or Company.
- name: Tags
- name: Tasks
- name: Task Statuses
- name: Timeline Activities
- name: Users
- name: Param Guide
description: 'We currently have three possible types of Query Param options that can be included with
any request to modify the results.
- Field Selection
- Pagination
- Sorting
- Filtering
There are two types of Queries,
- Queries that return a Single Object. These only have access to Field Selection Query Pa'
paths:
/v1/addresses/{address_id}:
get:
operationId: getAddress
summary: Address
description: A specific Stage by id
tags:
- Addresses
parameters:
- name: address_id
in: path
required: true
description: The address id
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
examples:
getAddress:
summary: GET Address
value:
data:
id: '101'
type: address
attributes:
label: Miami St
street: 1234 Miami
street2: null
city: Miami
state: FL
zipcode: '12345'
country: United States
relationships: {}
'401':
description: Unauthorized - missing or invalid OAuth 2.0 bearer token
'429':
description: Too Many Requests - the per-firm rate limit was exceeded; a Retry-After header
is returned
headers:
Retry-After:
description: Seconds to wait before retrying
schema:
type: integer
put:
operationId: updateAddress
summary: Update Address
description: Updates an Address by ID
tags:
- Addresses
parameters:
- name: address_id
in: path
required: true
description: The address id
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
example:
label: Home
street: 5555 Real Street
street2: Apt 77
city: Real Town
state: CA
country: United States
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
examples:
putUpdateAddress:
summary: PUT Update Address
value:
data:
id: '122'
type: address
attributes:
label: Home
street: 5555 Real Street
street2: Apt 77
city: Real Town
state: CA
zipcode: '92104'
country: United States
relationships:
addressable:
data:
id: '1'
type: contact
'401':
description: Unauthorized - missing or invalid OAuth 2.0 bearer token
'429':
description: Too Many Requests - the per-firm rate limit was exceeded; a Retry-After header
is returned
headers:
Retry-After:
description: Seconds to wait before retrying
schema:
type: integer
delete:
operationId: deleteAddress
summary: Delete Address
description: 'Delete an Address
address_id: ID of the Address to delete'
tags:
- Addresses
parameters:
- name: address_id
in: path
required: true
description: The address id
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
examples:
deleteDeleteAddress:
summary: DELETE Delete Address
value:
data:
id: '122'
type: address
attributes:
label: Home
street: 5555 Real Street
street2: Apt 77
city: Real Town
state: CA
zipcode: '92104'
country: United States
relationships:
addressable:
data:
id: '1'
type: contact
'401':
description: Unauthorized - missing or invalid OAuth 2.0 bearer token
'429':
description: Too Many Requests - the per-firm rate limit was exceeded; a Retry-After header
is returned
headers:
Retry-After:
description: Seconds to wait before retrying
schema:
type: integer
/v1/addresses:
get:
operationId: getAddresses
summary: Addresses
description: A paginated list of all Addresses in Lawmatics
tags:
- Addresses
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
examples:
getAddresses:
summary: GET Addresses
value:
data:
- id: '105'
type: address
attributes:
label: Primary
street: 1234 Fake Street
street2: null
city: null
state: null
zipcode: null
country: null
full_address: 1234 Fake Street
full_street: 1234 Fake Street
second_half: ''
city_state_zip: ''
created_at: '2022-03-29T22:03:55.343-07:00'
updated_at: '2022-03-29T22:03:55.343-07:00'
relationships:
addressable:
data:
id: '127'
type: contact
locations:
data: []
- id: '104'
type: address
attributes:
label: test
street: ''
street2: null
city: null
state: null
zipcode: null
country: null
full_address: ''
full_street: ''
second_half: ''
city_state_zip: ''
created_at: '2022-02-09T13:56:33.557-08:00'
updated_at: '2022-02-09T13:56:33.557-08:00'
relationships:
addressable:
data:
id: '116'
type: contact
locations:
data: []
- id: '103'
type: address
attributes:
label: Primary
street: '123'
street2: null
city: null
state: null
zipcode: null
country: null
full_address: '123'
full_street: '123'
second_half: ''
city_state_zip: ''
created_at: '2022-02-09T13:56:33.548-08:00'
updated_at: '2022-02-09T13:56:33.548-08:00'
relationships:
addressable:
data:
id: '116'
type: contact
locations:
data: []
- id: '102'
type: address
attributes:
label: Primary
street: 1234 fake street
street2: suite 2
city: San Diego
state: CA
zipcode: '92104'
country: United States
full_address: 1234 fake street, suite 2, San Diego, CA 92104, United States
full_street: 1234 fake street, suite 2
second_half: San Diego, CA 92104, United States
city_state_zip: San Diego, CA 92104
created_at: '2021-11-08T14:06:20.224-08:00'
updated_at: '2021-11-08T14:06:20.224-08:00'
relationships:
addressable:
data:
id: '2'
type: firm
locations:
data: []
- id: '101'
type: address
attributes:
label: Miami St
street: 1234 Miami
street2: null
city: Miami
state: FL
zipcode: '12345'
country: United States
full_address: 1234 Miami, Miami, FL 12345, United States
full_street: 1234 Miami
second_half: Miami, FL 12345, United States
city_state_zip: Miami, FL 12345
created_at: '2021-10-31T19:59:35.424-07:00'
updated_at: '2021-10-31T19:59:35.424-07:00'
relationships:
addressable:
data:
id: '2'
type: firm
locations:
data:
- id: '1'
type: location
- id: '100'
type: address
attributes:
label: Primary
street: 99 Fake Rd
street2: null
city: City 1
state: CA
zipcode: '90219'
country: United States
full_address: 99 Fake Rd, City 1, CA 90219, United States
full_street: 99 Fake Rd
second_half: City 1, CA 90219, United States
city_state_zip: City 1, CA 90219
created_at: '2021-10-26T15:47:48.382-07:00'
updated_at: '2021-10-26T15:47:48.382-07:00'
relationships:
addressable:
data:
id: '100'
type: contact
locations:
data: []
- id: '99'
type: address
attributes:
label: Primary
street: 98 Fake Rd
street2: null
city: City 3
state: IL
zipcode: '55126'
country: United States
full_address: 98 Fake Rd, City 3, IL 55126, United States
full_street: 98 Fake Rd
second_half: City 3, IL 55126, United States
city_state_zip: City 3, IL 55126
created_at: '2021-10-26T15:47:48.119-07:00'
updated_at: '2021-10-26T15:47:48.119-07:00'
relationships:
addressable:
data:
id: '99'
type: contact
locations:
data: []
- id: '98'
type: address
attributes:
label: Primary
street: 97 Fake Rd
street2: null
city: City 2
state: IL
zipcode: '60633'
country: United States
full_address: 97 Fake Rd, City 2, IL 60633, United States
full_street: 97 Fake Rd
second_half: City 2, IL 60633, United States
city_state_zip: City 2, IL 60633
created_at: '2021-10-26T15:47:47.890-07:00'
updated_at: '2021-10-26T15:47:47.890-07:00'
relationships:
addressable:
data:
id: '98'
type: contact
locations:
data: []
- id: '97'
type: address
attributes:
label: Primary
street: 96 Fake Rd
street2: null
city: City 2
state: IL
zipcode: '60633'
country: United States
full_address: 96 Fake Rd, City 2, IL 60633, United States
full_street: 96 Fake Rd
second_half: City 2, IL 60633, United States
city_state_zip: City 2, IL 60633
created_at: '2021-10-26T15:47:47.639-07:00'
updated_at: '2021-10-26T15:47:47.639-07:00'
relationships:
addressable:
data:
id: '97'
type: contact
locations:
data: []
- id: '96'
type: address
attributes:
label: Primary
street: 95 Fake Rd
street2: null
city: City 3
state: CA
zipcode: '55126'
country: United States
full_address: 95 Fake Rd, City 3, CA 55126, United States
full_street: 95 Fake Rd
second_half: City 3, CA 55126, United States
city_state_zip: City 3, CA 55126
created_at: '2021-10-26T15:47:46.875-07:00'
updated_at: '2021-10-26T15:47:46.875-07:00'
relationships:
addressable:
data:
id: '96'
type: contact
locations:
data: []
- id: '95'
type: address
attributes:
label: Primary
street: 94 Fake Rd
street2: null
city: City 3
state: CA
zipcode: '90219'
country: United States
full_address: 94 Fake Rd, City 3, CA 90219, United States
full_street: 94 Fake Rd
second_half: City 3, CA 90219, United States
city_state_zip: City 3, CA 90219
created_at: '2021-10-26T15:47:46.595-07:00'
updated_at: '2021-10-26T15:47:46.595-07:00'
relationships:
addressable:
data:
id: '95'
type: contact
locations:
data: []
- id: '94'
type: address
attributes:
label: Primary
street: 93 Fake Rd
street2: null
city: City 3
state: CA
zipcode: '55126'
country: United States
full_address: 93 Fake Rd, City 3, CA 55126, United States
full_street: 93 Fake Rd
second_half: City 3, CA 55126, United States
city_state_zip: City 3, CA 55126
created_at: '2021-10-26T15:47:46.277-07:00'
updated_at: '2021-10-26T15:47:46.277-07:00'
relationships:
addressable:
data:
id: '94'
type: contact
locations:
data: []
- id: '93'
type: address
attributes:
label: Primary
street: 92 Fake Rd
street2: null
city: City 1
state: MN
zipcode: '60633'
country: United States
full_address: 92 Fake Rd, City 1, MN 60633, United States
full_street: 92 Fake Rd
second_half: City 1, MN 60633, United States
city_state_zip: City 1, MN 60633
created_at: '2021-10-26T15:47:45.923-07:00'
updated_at: '2021-10-26T15:47:45.923-07:00'
relationships:
addressable:
data:
id: '93'
type: contact
locations:
data: []
- id: '92'
type: address
attributes:
label: Primary
street: 91 Fake Rd
street2: null
city: City 1
state: MN
zipcode: '60633'
country: United States
full_address: 91 Fake Rd, City 1, MN 60633, United States
full_street: 91 Fake Rd
second_half: City 1, MN 60633, United States
city_state_zip: City 1, MN 60633
created_at: '2021-10-26T15:47:45.619-07:00'
updated_at: '2021-10-26T15:47:45.619-07:00'
relationships:
addressable:
data:
id: '92'
type: contact
locations:
data: []
- id: '91'
type: address
attributes:
label: Primary
street: 90 Fake Rd
street2: null
city: City 1
state: CA
zipcode: '60633'
country: United States
full_address: 90 Fake Rd, City 1, CA 60633, United States
full_street: 90 Fake Rd
second_half: City 1, CA 60633, United States
city_state_zip: City 1, CA 60633
created_at: '2021-10-26T15:47:44.989-07:00'
updated_at: '2021-10-26T15:47:44.989-07:00'
relationships:
addressable:
data:
id: '91'
type: contact
locations:
data: []
- id: '90'
type: address
attributes:
label: Primary
street: 89 Fake Rd
street2: null
city: City 1
state: MN
zipcode: '60633'
country: United States
full_address: 89 Fake Rd, City 1, MN 60633, United States
full_street: 89 Fake Rd
second_half: City 1, MN 60633, United States
city_state_zip: City 1, MN 60633
created_at: '2021-10-26T15:47:44.732-07:00'
updated_at: '2021-10-26T15:47:44.732-07:00'
relationships:
addressable:
data:
id: '90'
type: contact
locations:
data: []
- id: '89'
type: address
attributes:
label: Primary
street: 88 Fake Rd
street2: null
city: City 1
state: MN
zipcode: '90219'
country: United States
full_address: 88 Fake Rd, City 1, MN 90219, United States
full_street: 88 Fake Rd
second_half: City 1, MN 90219, United States
city_state_zip: City 1, MN 90219
created_at: '2021-10-26T15:47:44.432-07:00'
updated_at: '2021-10-26T15:47:44.432-07:00'
relationships:
addressable:
data:
id: '89'
type: contact
locations:
data: []
- id: '88'
type: address
attributes:
label: Primary
street: 87 Fake Rd
street2: null
city: City 1
state: MN
zipcode: '55126'
country: United States
full_address: 87 Fake Rd, City 1, MN 55126, United States
full_street: 87 Fake Rd
second_half: City 1, MN 55126, United States
city_state_zip: City 1, MN 55126
created_at: '2021-10-26T15:47:44.158-07:00'
updated_at: '2021-10-26T15:47:44.158-07:00'
relationships:
addressable:
data:
id: '88'
type: contact
locations:
data: []
- id: '87'
type: address
attributes:
label: Primary
street: 86 Fake Rd
street2: null
city: City 3
state: MN
zipcode: '60633'
country: United States
full_address: 86 Fake Rd, City 3, MN 60633, United States
full_street: 86 Fake Rd
second_half: City 3, MN 60633, United States
city_state_zip: City 3, MN 60633
created_at: '2021-10-26T15:47:43.410-07:00'
updated_at: '2021-10-26T15:47:43.410-07:00'
relationships:
addressable:
data:
id: '87'
type: contact
locations:
data: []
- id: '86'
type: address
attributes:
label: Primary
street: 85 Fake Rd
street2: null
city: City 1
state: MN
zipcode: '90219'
country: United States
full_address: 85 Fake Rd, City 1, MN 90219, United States
full_street: 85 Fake Rd
second_half: City 1, MN 90219, United States
city_state_zip: City 1, MN 90219
created_at: '2021-10-26T15:47:43.068-07:00'
updated_at: '2021-10-26T15:47:43.068-07:00'
relationships:
addressable:
data:
id: '86'
type: contact
locations:
data: []
- id: '85'
type: address
attributes:
label: Primary
street: 84 Fake Rd
street2: null
city: City 3
state: IL
zipcode: '55126'
country: United States
full_address: 84 Fake Rd, City 3, IL 55126, United States
full_street: 84 Fake Rd
second_half: City 3, IL 55126, United States
city_state_zip: City 3, IL 55126
created_at: '2021-10-26T15:47:42.519-07:00'
updated_at: '2021-10-26T15:47:42.519-07:00'
relationships:
addressable:
data:
id: '85'
type: contact
locations:
data: []
- id: '84'
type: address
attributes:
label: Primary
street: 83 Fake Rd
street2: null
city: City 3
state: CA
zipcode: '90219'
country: United States
full_address: 83 Fake Rd, City 3, CA 90219, United States
full_street: 83 Fake Rd
second_half: City 3, CA 90219, United States
city_state_zip: City 3, CA 90219
created_at: '2021-10-26T15:47:42.294-07:00'
updated_at: '2021-10-26T15:47:42.294-07:00'
relationships:
addressable:
data:
id: '84'
type: contact
locations:
data: []
- id: '83'
type: address
attributes:
label: Primary
street: 82 Fake Rd
street2: null
city: City 3
state: MN
zipcode: '55126'
country: United States
full_address: 82 Fake Rd, City 3, MN 55126, United States
full_street: 82 Fake Rd
second_half: City 3, MN 55126, United States
city_state_zip: City 3, MN 55126
# --- truncated at 32 KB (728 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lawmatics/refs/heads/main/openapi/lawmatics-openapi.yml