LawVu Matters API
The Matters API from LawVu — 11 operation(s) for matters.
The Matters API from LawVu — 11 operation(s) for matters.
openapi: 3.0.1
info:
title: LawVu Account Auth Matters API
description: Apis for account related resources (authentication, profiles, organisation details etc)
version: '1.0'
servers:
- url: https://api-sandbox.lawvu.com/account-apis
description: Sandbox API
- url: https://api.lawvu.com/account-apis
description: Production API
tags:
- name: Matters
paths:
/v2/matters:
get:
tags:
- Matters
summary: Get matters
description: Retrieve a list of matters
operationId: get-v2-matters
parameters:
- name: $filter
in: query
description: Filter the results using OData filter syntax
schema:
type: string
- name: $orderby
in: query
description: Order the results using OData orderby syntax
schema:
type: string
- name: $skip
in: query
description: Skip the specified number of results
schema:
type: integer
- name: $top
in: query
description: Limit the number of results returned
schema:
type: integer
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MatterCollectionResponse'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/HttpValidationProblemDetails'
example:
detail: The request was invalid and could not be processed
errors:
Name: Operation 'gt' is not supported for 'Name'
instance: /matters
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 400
title: Invalid request
type: https://api-docs.lawvu.com/errors/invalid_request
post:
tags:
- Matters
summary: Create matter
description: Creates a matter based on the provided matter type.
operationId: post-v2-matters
requestBody:
content:
application/json:
schema:
required:
- type
allOf:
- $ref: '#/components/schemas/CreateMatter'
responses:
'201':
description: Created
headers:
Location:
description: Location to retrieve the created matter
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedMatter'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/HttpValidationProblemDetails'
example:
detail: The request was invalid and could not be processed
errors:
Name: Required
instance: /matters
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 400
title: Invalid request
type: https://api-docs.lawvu.com/errors/invalid_request
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
example:
detail: The request could not be processed due to a conflict
errors:
ExternalId: Is already in use
instance: /matters
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 409
title: Conflict
type: https://api-docs.lawvu.com/errors/conflict
/v2/matters/{matterId}:
get:
tags:
- Matters
summary: Get matter
description: Retrieve a matter by its identifier
operationId: get-v2-matters-matterid
parameters:
- name: matterId
in: path
description: The system identifier for the matter
required: true
schema:
type: integer
description: The system identifier for the matter
format: int32
example: 1056
example: 1056
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Matter'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
example:
detail: The requested resource could not be found
instance: /matters/1056
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 404
title: Resource not found
type: https://api-docs.lawvu.com/errors/resource_not_found
patch:
tags:
- Matters
summary: Update matter
description: Updates a matters details
operationId: patch-v2-matters-matterid
parameters:
- name: matterId
in: path
description: The system identifier for the matter
required: true
schema:
type: integer
description: The system identifier for the matter
format: int32
example: 1056
example: 1056
requestBody:
content:
application/merge-patch+json:
schema:
allOf:
- $ref: '#/components/schemas/UpdateMatter'
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/HttpValidationProblemDetails'
example:
detail: The request was invalid and could not be processed
errors:
Name: Required
instance: /matters/1056
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 400
title: Invalid request
type: https://api-docs.lawvu.com/errors/invalid_request
'403':
description: Forbidden
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
example:
detail: You do not have permission to update this matter
instance: /matters/1056
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 403
title: Forbidden
type: https://api-docs.lawvu.com/errors/forbidden
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
example:
detail: The requested resource could not be found
instance: /matters/1056
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 404
title: Resource not found
type: https://api-docs.lawvu.com/errors/resource_not_found
'409':
description: Conflict
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
example:
detail: The request could not be processed due to a conflict
errors:
ExternalId: Is already in use
instance: /matters/1056
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 409
title: Conflict
type: https://api-docs.lawvu.com/errors/conflict
/v2/matters/{matterId}/files/{fileId}:
get:
tags:
- Matters
summary: Get matter file
description: Retrieve information about a file on a matter
operationId: get-v2-matters-matterid-files-fileid
parameters:
- name: matterId
in: path
description: The system identifier for the matter
required: true
schema:
type: integer
description: The system identifier for the matter
format: int32
example: 1056
example: 1056
- name: fileId
in: path
description: The system identifier for the file
required: true
schema:
type: integer
description: The system identifier for the file
format: int32
example: 9456
example: 9456
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/File'
'404':
description: Not Found
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
example:
detail: The requested resource could not be found
instance: /matters/1056/files/9456
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 404
title: Resource not found
type: https://api-docs.lawvu.com/errors/resource_not_found
/v2/matterTypes:
get:
tags:
- Matters
summary: Get matter types
description: Retrieve a list of matter types
operationId: get-v2-mattertypes
parameters:
- name: $skip
in: query
description: Specifies the number of items to skip
schema:
type: integer
description: Specifies the number of items to skip
format: int32
default: 0
- name: $top
in: query
description: Specifies the maximum number of items to return
schema:
type: integer
description: Specifies the maximum number of items to return
format: int32
default: 25
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/MatterTypeCollectionResponse'
'400':
description: Bad Request
content:
application/problem+json:
schema:
$ref: '#/components/schemas/HttpValidationProblemDetails'
example:
detail: The request was invalid and could not be processed
instance: /matterTypes/
operationId: 7edb5d62-f5bf-463b-9410-cdd8b3293d89
status: 400
title: Invalid request
type: https://api-docs.lawvu.com/errors/invalid_request
/v1/matters/quickfind:
get:
tags:
- Matters
summary: Find matters
description: Quickly find and filter matters
operationId: get-v1-matters-quickfind
parameters:
- name: term
in: query
description: A term to search matters by
schema:
type: string
- name: includeRestricted
in: query
description: 'Include restricted matters in the search<p>Default: False</p>'
schema:
type: boolean
default: false
- name: take
in: query
description: 'The number of matters to return (maximum: 100, default: 20)'
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
text/plain:
schema:
$ref: '#/components/schemas/QuickFindMatterArray'
application/json:
schema:
$ref: '#/components/schemas/QuickFindMatterArray'
text/json:
schema:
$ref: '#/components/schemas/QuickFindMatterArray'
/v1/matters/recent:
get:
tags:
- Matters
summary: Recent matters
description: Returns recently viewed (ref:take) matters for the user
operationId: get-v1-matters-recent
parameters:
- name: take
in: query
description: 'The maximum number of recently viewed matters to return<p>Default: 5</p>'
schema:
type: integer
format: int32
default: 5
responses:
'200':
description: Success
content:
text/plain:
schema:
$ref: '#/components/schemas/RecentMatterArray'
example:
- id: 95
name: My Matter
matterNumber: LV1234-0012
lastActivityDateUtc: '2023-12-15T20:30:00Z'
organisationId: 1234
managerId: C7541186-26CE-4C6C-ABFF-37FE3EF57F88
ownerId: 08FD1ED1-627E-4CB9-8388-731227584D21
- id: 789
name: Another Matter
matterNumber: LV1234-0099
lastActivityDateUtc: '2024-01-12T10:00:00Z'
organisationId: 1234
managerId: null
ownerId: BE17D7D6-721A-4F6D-B081-CAABB6D8F5B9
- id: 684
name: Different Matter
matterNumber: LV1234-0054
lastActivityDateUtc: '2023-12-10T15:30:00Z'
organisationId: 1234
managerId: C7541186-26CE-4C6C-ABFF-37FE3EF57F88
ownerId: BE17D7D6-721A-4F6D-B081-CAABB6D8F5B9
application/json:
schema:
$ref: '#/components/schemas/RecentMatterArray'
example:
- id: 95
name: My Matter
matterNumber: LV1234-0012
lastActivityDateUtc: '2023-12-15T20:30:00Z'
organisationId: 1234
managerId: C7541186-26CE-4C6C-ABFF-37FE3EF57F88
ownerId: 08FD1ED1-627E-4CB9-8388-731227584D21
- id: 789
name: Another Matter
matterNumber: LV1234-0099
lastActivityDateUtc: '2024-01-12T10:00:00Z'
organisationId: 1234
managerId: null
ownerId: BE17D7D6-721A-4F6D-B081-CAABB6D8F5B9
- id: 684
name: Different Matter
matterNumber: LV1234-0054
lastActivityDateUtc: '2023-12-10T15:30:00Z'
organisationId: 1234
managerId: C7541186-26CE-4C6C-ABFF-37FE3EF57F88
ownerId: BE17D7D6-721A-4F6D-B081-CAABB6D8F5B9
text/json:
schema:
$ref: '#/components/schemas/RecentMatterArray'
example:
- id: 95
name: My Matter
matterNumber: LV1234-0012
lastActivityDateUtc: '2023-12-15T20:30:00Z'
organisationId: 1234
managerId: C7541186-26CE-4C6C-ABFF-37FE3EF57F88
ownerId: 08FD1ED1-627E-4CB9-8388-731227584D21
- id: 789
name: Another Matter
matterNumber: LV1234-0099
lastActivityDateUtc: '2024-01-12T10:00:00Z'
organisationId: 1234
managerId: null
ownerId: BE17D7D6-721A-4F6D-B081-CAABB6D8F5B9
- id: 684
name: Different Matter
matterNumber: LV1234-0054
lastActivityDateUtc: '2023-12-10T15:30:00Z'
organisationId: 1234
managerId: C7541186-26CE-4C6C-ABFF-37FE3EF57F88
ownerId: BE17D7D6-721A-4F6D-B081-CAABB6D8F5B9
/v1/matters:
post:
tags:
- Matters
summary: Create matter
description: Creates a new matter with the supplied values
operationId: post-v1-matters
requestBody:
description: ''
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/CreateMatter_2'
application/json:
schema:
$ref: '#/components/schemas/CreateMatter_2'
text/json:
schema:
$ref: '#/components/schemas/CreateMatter_2'
application/*+json:
schema:
$ref: '#/components/schemas/CreateMatter_2'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: integer
format: int32
application/json:
schema:
type: integer
format: int32
text/json:
schema:
type: integer
format: int32
get:
tags:
- Matters
summary: Get matters
description: "Gets matters filtered by single or multiple fields.\r\n<br /> \r\n_To filter by one field_: \"filtering.field\", \"filtering.operator\" and \"filtering.value\" parameters must be filled.\r\n<br /> \r\n_To filter by multiple fields_: \"filtering.logic\" and \"filtering.filters\" parameters must be filled."
operationId: get-v1-matters
parameters:
- name: skip
in: query
description: The number of matters to skip (used for paging)
schema:
type: integer
format: int32
- name: fields
in: query
description: Fields to include in the response
schema:
type: array
items:
type: string
- name: filtering.logic
in: query
description: Gets or sets the filtering logic for filters. Value by default is 'and'
schema:
enum:
- and
- or
type: string
- name: filtering.filters
in: query
description: "Array of filters object (optional)\r\n<br /> \r\n_Object Properties_:\r\n<br /> \r\n* _Field_: field to filter by\r\n<br /> \r\n* _Operator_: operator used to filter by\r\n<br /> \r\n* _Value_: value to filter by"
schema:
$ref: '#/components/schemas/FilteringArray'
- name: filtering.field
in: query
description: Field to filter by (optional)
schema:
type: string
- name: filtering.operator
in: query
description: Operator used for filtering (optional)
schema:
enum:
- eq
- neq
- lt
- lte
- gt
- gte
- startswith
- endswith
- contains
- doesnotcon
- isnull
type: string
- name: filtering.value
in: query
description: Value to filter by (optional)
schema:
type: string
- name: sorting.direction
in: query
description: Set the sorting direction
schema:
enum:
- asc
- desc
type: string
- name: sorting.field
in: query
description: Set the sorting fields
schema:
type: string
- name: take
in: query
description: 'The maximum number of matters to return<p>Default: 50</p>'
schema:
type: integer
format: int32
default: 50
- name: context
in: query
description: 'Controls the scope of matters returned by this operation<p>Default: Personal</p><p>Options:</p><ul><li>All - Returns all matters regardless of whether the authenticated user is a member. Requires the authenticated user to be a member of the Matter Administrators security group</li><li>Personal - Returns matters which the authenticated user is a member of. Equivalent to the "My matters" view in LawVu</li><li>Intake - Returns all matters in the Intake queue. Requires the authenticated user to have the ''Manage intake'' permission</li><li>Teams - Returns all matters that are accessible by teams that the authenticated user is a member of</li><li>Restricted - Returns restricted matters. Requires the authenticated user to be an Organization Administrator</li></ul>'
schema:
enum:
- All
- Personal
- Intake
- Teams
- Restricted
type: string
description: <p>Options:</p><ul><li>All - Returns all matters regardless of whether the authenticated user is a member. Requires the authenticated user to be a member of the Matter Administrators security group</li><li>Personal - Returns matters which the authenticated user is a member of. Equivalent to the "My matters" view in LawVu</li><li>Intake - Returns all matters in the Intake queue. Requires the authenticated user to have the 'Manage intake' permission</li><li>Teams - Returns all matters that are accessible by teams that the authenticated user is a member of</li><li>Restricted - Returns restricted matters. Requires the authenticated user to be an Organization Administrator</li></ul>
default: Personal
responses:
'200':
description: Success
content:
text/plain:
schema:
$ref: '#/components/schemas/ObjectDataSourceResultModel'
application/json:
schema:
$ref: '#/components/schemas/ObjectDataSourceResultModel'
text/json:
schema:
$ref: '#/components/schemas/ObjectDataSourceResultModel'
/v1/matters/{matterId}:
get:
tags:
- Matters
summary: Get matter
description: 'Gets the details of the selected matter (ref: matterId)'
operationId: get-v1-matters-matterid
parameters:
- name: matterId
in: path
description: The Id of the matter (e.g. 1234)
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
text/plain:
schema:
$ref: '#/components/schemas/Matter_2'
application/json:
schema:
$ref: '#/components/schemas/Matter_2'
text/json:
schema:
$ref: '#/components/schemas/Matter_2'
patch:
tags:
- Matters
summary: Update matter
operationId: patch-v1-matters-matterid
parameters:
- name: matterId
in: path
description: The Id of the matter
required: true
schema:
type: integer
format: int32
requestBody:
description: The update request (in jsonpatch format)
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/OperationArray'
application/json:
schema:
$ref: '#/components/schemas/OperationArray'
text/json:
schema:
$ref: '#/components/schemas/OperationArray'
application/*+json:
schema:
$ref: '#/components/schemas/OperationArray'
responses:
'200':
description: Success
/v1/matters/{matterId}/users:
post:
tags:
- Matters
summary: Add user to a matter
description: Adds a user to the matter (as owner, manager or regular matter member)
operationId: post-v1-matters-matterid-users
parameters:
- name: matterId
in: path
description: The Id of the matter
required: true
schema:
type: integer
format: int32
requestBody:
description: Details about how to assign the user to the matter
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/AssignMatterUser'
application/json:
schema:
$ref: '#/components/schemas/AssignMatterUser'
text/json:
schema:
$ref: '#/components/schemas/AssignMatterUser'
application/*+json:
schema:
$ref: '#/components/schemas/AssignMatterUser'
required: true
responses:
'200':
description: Success
get:
tags:
- Matters
summary: Get matter users
description: Returns the users that are assigned to the matter
operationId: get-v1-matters-matterid-users
parameters:
- name: matterId
in: path
description: The matter id
required: true
schema:
type: integer
format: int32
- name: skip
in: query
description: The number of results to skip
schema:
type: integer
format: int32
- name: filtering.field
in: query
description: Field to filter by (optional)
schema:
type: string
- name: filtering.operator
in: query
description: Operator used for filtering (optional)
schema:
enum:
- eq
- neq
- lt
- lte
- gt
- gte
- startswith
- endswith
- contains
- doesnotcon
- isnull
type: string
- name: filtering.value
in: query
description: Value to filter by (optional)
schema:
type: string
- name: sorting.direction
in: query
description: Set the sorting direction
schema:
enum:
- asc
- desc
type: string
- name: sorting.field
in: query
description: Set the sorting fields
schema:
type: string
- name: take
in: query
description: 'The maximum number of matter users to return<p>Default: 50</p>'
schema:
type: integer
format: int32
default: 50
responses:
'200':
description: Success
content:
text/plain:
schema:
$ref: '#/components/schemas/MatterUserDataSourceResult'
application/json:
schema:
$ref: '#/components/schemas/MatterUserDataSourceResult'
text/json:
schema:
$ref: '#/components/schemas/MatterUserDataSourceResult'
/v1/matters/externalid/{externalId}:
get:
tags:
- Matters
summary: ExternalId lookup
operationId: get-v1-matters-externalid-externalid
parameters:
- name: externalId
in: path
description: The externalId to lookup
required: true
schema:
type: string
responses:
'200':
description: Success
content:
text/plain:
schema:
$ref: '#/components/schemas/ExternalIdLookupModel'
application/json:
schema:
$ref: '#/components/schemas/ExternalIdLookupModel'
text/json:
schema:
$ref: '#/components/schemas/ExternalIdLookupModel'
/v1/matters/{matterId}/fields:
get:
tags:
- Matters
summary: Get matter fields
description: Get matter fields by matter id
operationId: get-v1-matters-matterid-fields
parameters:
- name: matterId
in: path
description: The Id of the matter
required: true
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
text/plain:
schema:
$ref: '#/components/schemas/MatterFieldData'
example:
detailFields:
schema:
properties:
field_1:
fieldId: 1
title: An example field name
description: Example field description
lawvuType: 7
isReadOnly: false
type: boolean
label: ''
order:
- field_1
required:
- field_1
model:
field_1: true
coreFields:
schema: null
model: null
application/json:
schema:
$ref: '#/components/schemas/MatterFieldData'
example:
detailFields:
schema:
properties:
field_1:
fieldId: 1
title: An example field name
description: Example field description
lawvuType: 7
isReadOnly: false
type: boolean
label: ''
order:
- field_1
required:
- field_1
model:
field_1: true
coreFields:
schema: null
model: null
text/json:
schema:
$ref: '#/components/schemas/MatterFieldData'
example:
detailFields:
schema:
properties:
field_1:
fieldId: 1
title: An example field name
description: Example field description
lawvuType: 7
isReadOnly: false
type: boolean
label: ''
order:
- field_1
required:
- field_1
model:
field_1: true
coreFields:
schema: null
model: null
patch:
tags:
- Matters
summary: Update fields
operationId: patch-v1-matters-matterid-fields
parameters:
- name: matterId
in: path
description: The Id of the matter
required: true
schema:
type: integer
format: int32
requestBody:
description: The update request (in jsonpatch format)
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/OperationArray'
examples:
string field:
value:
value: new value
path: /field_string
op: replace
number field:
value:
value: 123
path: /field_number
op: replace
date field:
value:
value: '2022-03-03'
path: /field_date
op: replace
boolean field:
value:
value: true
path: /field_bool
op: replace
object field:
value:
value:
id: object_id
path: /field_object
op: replace
array field:
value:
value:
- 1
- 2
- 3
path: /field_array
op: replace
group field:
value:
value: string under a group
path: /group1/field_string
op: replace
nested group field:
value:
value: string under multiple groups
path: /group1/group2/group3/field_string
op: replace
application/json:
schema:
$ref: '#/components/schemas/OperationArray'
examples:
string field:
value:
value: new value
path: /field_string
op: replace
number field:
value:
value: 123
path: /field_number
op: replace
date field:
value:
value: '2022-03-03'
path: /field_date
op: replace
boolean field:
val
# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lawvu/refs/heads/main/openapi/lawvu-matters-api-openapi.yml