Lawmatics Collections API

The Collections API from Lawmatics — 4 operation(s) for collections.

Operations 10

GET /v1/collections Collections #
POST /v1/collections Create Collection #
GET /v1/collections/{collection_id} Collection #
PUT /v1/collections/{collection_id} Update Collection #
DELETE /v1/collections/{collection_id} Delete Collection #
GET /v1/collection_items Collection Items #
POST /v1/collection_items Create Collection Item #
GET /v1/collection_items/{collection_item_id} Collection Item #
PUT /v1/collection_items/{collection_item_id} Update Collection Item #
DELETE /v1/collection_items/{collection_item_id} Delete Collection Item #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lawmatics-collections-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lawmatics-collections-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lawmatics OAuth Collections 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
servers:
- url: https://api.lawmatics.com
  description: Lawmatics production API
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Collections
paths:
  /v1/collections:
    get:
      operationId: getCollections
      summary: Collections
      description: 'Retrieves a list of all Collections in the Lawmatics account.


        Endpoint

        GET {{host}}/v1/collections


        Authentication

        This request uses OAuth 2.0. Ensure a valid access_token is set in the active environment.


        Headers


        Key

        Value


        Content-Type

        application/json


        Response

        Returns a JSON object with a data array. Each item in the array represents a Collection and includes:


        Field

        Type

        Description


        id

        string

        Unique identifier for the collection


        type

        string

        Resource type — always "collection"


        attributes.name

        string

        Name of the collection


        attributes.custom_fields

        array

        List of custom fields associated with the collection


        attributes.created_at

        string (ISO 8601)

        Timestamp when the collection was created


        attributes.updated_at

        string (ISO 8601)

        Timestamp when the collection was last updated


        Custom Field Object


        Field

        Type

        Description


        id

        string

        Unique identifier for the custom field


        name

        string

        Display name of the custom field


        field_type

        string

        Type of field (e.g., list, multi_picklist, currency)


        visibility

        string

        Visibility setting (e.g., default)


        type

        string

        Parent resource type — always "Collection"


        list_options

        array

        Available options for list/picklist fields


        created_at

        string (ISO 8601)

        Timestamp when the field was created


        updated_at

        string (ISO 8601)

        Timestamp when the field was last updated'
      tags:
      - Collections
      responses:
        default:
          description: Example response captured in the source Postman collection; the HTTP status code was not recorded by the publisher.
          content:
            application/json:
              schema:
                type: object
              examples:
                collections:
                  summary: Collections
                  value:
                    data:
                    - id: '6'
                      type: collection
                      attributes:
                        name: Test
                        custom_fields:
                        - id: '306'
                          name: MultiTest
                          field_type: multi_picklist
                          visibility: default
                          type: Collection
                          list_options:
                          - id: '56'
                            name: One
                          - id: '57'
                            name: Two
                          - id: '58'
                            name: Three
                          created_at: '2026-05-27T15:09:15.359-07:00'
                          updated_at: '2026-05-27T15:09:15.359-07:00'
                        created_at: '2026-05-27T15:09:15.354-07:00'
                        updated_at: '2026-05-27T15:09:15.354-07:00'
                    - id: '5'
                      type: collection
                      attributes:
                        name: Bank Accounts
                        custom_fields:
                        - id: '305'
                          name: Type
                          field_type: list
                          visibility: default
                          type: Collection
                          list_options:
                          - id: '54'
                            name: Checking
                          - id: '55'
                            name: Savings
                          created_at: '2026-05-27T14:52:05.096-07:00'
                          updated_at: '2026-05-27T14:52:05.096-07:00'
                        - id: '304'
                          name: Balance
                          field_type: currency
                          visibility: default
                          type: Collection
                          created_at: '2026-05-27T14:52:05.090-07:00'
                          updated_at: '2026-05-27T14:52:05.090-07:00'
                        - id: '303'
                          name: Name
                          field_type: text
                          visibility: default
                          type: Collection
                          created_at: '2026-05-27T14:52:05.057-07:00'
                          updated_at: '2026-05-27T14:52:05.057-07:00'
                        created_at: '2026-05-27T14:52:05.019-07:00'
                        updated_at: '2026-05-27T14:52:05.019-07:00'
                    - id: '2'
                      type: collection
                      attributes:
                        name: Albums
                        custom_fields:
                        - id: '299'
                          name: Artist Name
                          field_type: text
                          visibility: default
                          type: Collection
                          created_at: '2026-05-26T16:10:41.056-07:00'
                          updated_at: '2026-05-26T16:10:41.056-07:00'
                        - id: '298'
                          name: Name
                          field_type: text
                          visibility: default
                          type: Collection
                          created_at: '2026-05-26T16:09:11.640-07:00'
                          updated_at: '2026-05-26T16:11:14.439-07:00'
                        created_at: '2026-05-26T16:09:11.630-07:00'
                        updated_at: '2026-05-26T16:09:11.630-07:00'
                    - id: '1'
                      type: collection
                      attributes:
                        name: Movies
                        custom_fields:
                        - id: '295'
                          name: Name
                          field_type: string
                          visibility: default
                          type: Collection
                          created_at: '2026-05-26T13:09:49.162-07:00'
                          updated_at: '2026-05-26T13:09:49.162-07:00'
                        - id: '296'
                          name: Director
                          field_type: string
                          visibility: default
                          type: Collection
                          created_at: '2026-05-26T13:09:49.168-07:00'
                          updated_at: '2026-05-26T13:09:49.168-07:00'
                        - id: '297'
                          name: Genre
                          field_type: list
                          visibility: default
                          type: Collection
                          list_options:
                          - id: '49'
                            name: Horror
                          - id: '50'
                            name: Romance
                          - id: '51'
                            name: Action
                          - id: '52'
                            name: Comedy
                          - id: '53'
                            name: Drama
                          created_at: '2026-05-26T13:09:49.192-07:00'
                          updated_at: '2026-05-26T13:09:49.192-07:00'
                        created_at: '2026-05-26T13:09:49.160-07:00'
                        updated_at: '2026-05-26T13:09:49.160-07:00'
                    meta:
                      total_pages: 1
                      limit_per_page: 25
                      total_entries: 4
                    links:
                      self: /v1/collections?page=1
        '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
    post:
      operationId: createCollection
      summary: Create Collection
      description: 'Creates a new Collection in Lawmatics. Collections are used to group and organize records (such as contacts or matters) with custom fields tailored to your needs.


        Request Body

        The request body must be a JSON object with the following fields:


        Field

        Type

        Required

        Description


        name

        string

        Yes

        The name of the collection to create.


        custom_fields

        array

        No

        An array of custom field definitions to attach to the collection.


        Custom Field Object

        Each object in the custom_fields array supports the following properties:


        Field

        Type

        Required

        Description


        name

        string

        Yes

        The display name of the custom field.


        field_type

        string

        Yes

        The type of the field. Supported values: integer, boolean, string, text, currency, date, time, datetime, list, lookup, multi_picklist


        list_options

        array

        Only for list and multi_picklist types

        An array of option objects, each with a name property, defining the selectable values for a list field.


        Response

        Returns 201 Created on success with a JSON object containing the created collection''s data under the data key.


        Response Body


        Field

        Type

        Description


        data.id

        string

        The unique ID of the newly created collection.


        data.type

        string

        The resource type (collection).


        data.attributes.name

        string

        The name of the collection.


        data.attributes.custom_fields

        array

        The list of custom fields created for this collection, each including id, name, field_type, visibility, created_at, and updated_at.


        data.attributes.created_at

        string

        ISO 8601 timestamp of when the collection was created.


        data.attributes.updated_at

        string

        ISO 8601 timestamp of when the collection was last updated.'
      tags:
      - Collections
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              name: Bank Accounts
              custom_fields:
              - name: Name
                field_type: text
              - name: Balance
                field_type: currency
              - name: Type
                field_type: list
                list_options:
                - name: Checking
                - name: Savings
      responses:
        default:
          description: Example response captured in the source Postman collection; the HTTP status code was not recorded by the publisher.
          content:
            application/json:
              schema:
                type: object
              examples:
                createCollection:
                  summary: Create Collection
                  value:
                    data:
                      id: '7'
                      type: collection
                      attributes:
                        name: Bank Accounts
                        custom_fields:
                        - id: '307'
                          name: Name
                          field_type: text
                          visibility: default
                          type: Collection
                          created_at: '2026-05-28T11:10:33.113-07:00'
                          updated_at: '2026-05-28T11:10:33.113-07:00'
                        - id: '308'
                          name: Balance
                          field_type: currency
                          visibility: default
                          type: Collection
                          created_at: '2026-05-28T11:10:33.236-07:00'
                          updated_at: '2026-05-28T11:10:33.236-07:00'
                        - id: '309'
                          name: Type
                          field_type: list
                          visibility: default
                          type: Collection
                          list_options:
                          - id: '59'
                            name: Checking
                          - id: '60'
                            name: Savings
                          created_at: '2026-05-28T11:10:33.249-07:00'
                          updated_at: '2026-05-28T11:10:33.249-07:00'
                        created_at: '2026-05-28T11:10:33.109-07:00'
                        updated_at: '2026-05-28T11:10:33.109-07:00'
        '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/collections/{collection_id}:
    get:
      operationId: getCollection
      summary: Collection
      description: 'Retrieves a single Collection by its ID.


        Path Variables


        Variable

        Description


        collection_id

        The unique identifier of the collection to retrieve.


        Response

        Returns a data object representing the collection with the following attributes:


        Field

        Type

        Description


        id

        string

        Unique identifier of the collection.


        type

        string

        Resource type ("collection").


        attributes.name

        string

        Name of the collection.


        attributes.custom_fields

        array

        List of custom fields defined for the collection.


        attributes.created_at

        string

        ISO 8601 timestamp of when the collection was created.


        attributes.updated_at

        string

        ISO 8601 timestamp of when the collection was last updated.


        Custom Field Object


        Field

        Type

        Description


        id

        string

        Unique identifier of the custom field.


        name

        string

        Display name of the custom field.


        field_type

        string

        Data type of the field (e.g., text, currency, list).


        visibility

        string

        Visibility setting of the field.


        type

        string

        Resource type ("Collection").


        list_options

        array

        Available options for list type fields.


        created_at

        string

        ISO 8601 timestamp of when the field was created.


        updated_at

        string

        ISO 8601 timestamp of when the field was last updated.'
      tags:
      - Collections
      parameters:
      - name: collection_id
        in: path
        required: true
        description: The collection id
        schema:
          type: string
      responses:
        default:
          description: Example response captured in the source Postman collection; the HTTP status code was not recorded by the publisher.
          content:
            application/json:
              schema:
                type: object
              examples:
                collection:
                  summary: Collection
                  value:
                    data:
                      id: '5'
                      type: collection
                      attributes:
                        name: Bank Accounts
                        custom_fields:
                        - id: '305'
                          name: Type
                          field_type: list
                          visibility: default
                          type: Collection
                          list_options:
                          - id: '54'
                            name: Checking
                          - id: '55'
                            name: Savings
                          created_at: '2026-05-27T14:52:05.096-07:00'
                          updated_at: '2026-05-27T14:52:05.096-07:00'
                        - id: '304'
                          name: Balance
                          field_type: currency
                          visibility: default
                          type: Collection
                          created_at: '2026-05-27T14:52:05.090-07:00'
                          updated_at: '2026-05-27T14:52:05.090-07:00'
                        - id: '303'
                          name: Name
                          field_type: text
                          visibility: default
                          type: Collection
                          created_at: '2026-05-27T14:52:05.057-07:00'
                          updated_at: '2026-05-27T14:52:05.057-07:00'
                        created_at: '2026-05-27T14:52:05.019-07:00'
                        updated_at: '2026-05-27T14:52:05.019-07:00'
        '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: updateCollection
      summary: Update Collection
      description: 'Updates an existing collection by its ID. This endpoint allows you to modify the collection''s associated custom fields.


        URL Parameters


        Parameter

        Type

        Description


        id

        integer

        The unique identifier of the collection to update. Provided as a path segment (e.g., 2 in /v1/collections/2).


        Request Body

        Send a JSON object with the following fields:


        Field

        Type

        Required

        Description


        custom_fields

        array of objects

        Yes

        List of custom fields to associate with the collection.


        custom_fields Object Properties


        Property

        Type

        Description


        id

        string

        The unique identifier of the custom field (e.g., "298").


        field_type

        string

        The type of the custom field (e.g., "text").'
      tags:
      - Collections
      parameters:
      - name: collection_id
        in: path
        required: true
        description: The collection id
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              custom_fields:
              - id: '{{collection_custom_field_id}}'
                name: Account Balance
      responses:
        default:
          description: Example response captured in the source Postman collection; the HTTP status code was not recorded by the publisher.
          content:
            application/json:
              schema:
                type: object
              examples:
                updateCollection:
                  summary: Update Collection
                  value:
                    data:
                      id: '7'
                      type: collection
                      attributes:
                        name: Bank Accounts
                        custom_fields:
                        - id: '309'
                          name: Type
                          field_type: list
                          visibility: default
                          type: Collection
                          list_options:
                          - id: '59'
                            name: Checking
                          - id: '60'
                            name: Savings
                          created_at: '2026-05-28T11:10:33.249-07:00'
                          updated_at: '2026-05-28T11:10:33.249-07:00'
                        - id: '308'
                          name: Account Balance
                          field_type: currency
                          visibility: default
                          type: Collection
                          created_at: '2026-05-28T11:10:33.236-07:00'
                          updated_at: '2026-05-28T11:12:08.285-07:00'
                        - id: '307'
                          name: Name
                          field_type: text
                          visibility: default
                          type: Collection
                          created_at: '2026-05-28T11:10:33.113-07:00'
                          updated_at: '2026-05-28T11:10:33.113-07:00'
                        created_at: '2026-05-28T11:10:33.109-07:00'
                        updated_at: '2026-05-28T11:10:33.109-07:00'
        '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: deleteCollection
      summary: Delete Collection
      description: 'Deletes an existing collection by its ID.


        Path Variables


        Variable

        Description


        collection_id

        The unique identifier of the collection to delete.


        Response

        Returns a 200 OK with the deleted collection''s data on success, including:


        - id – The collection''s unique identifier.


        - type – Resource type (collection).


        - attributes – Collection attributes:


        - name – Name of the collection.


        - custom_fields – Array of custom fields associated with the collection.


        - created_at – Timestamp when the collection was created.


        - updated_at – Timestamp when the collection was last updated.'
      tags:
      - Collections
      parameters:
      - name: collection_id
        in: path
        required: true
        description: The collection id
        schema:
          type: string
      responses:
        default:
          description: Example response captured in the source Postman collection; the HTTP status code was not recorded by the publisher.
          content:
            application/json:
              schema:
                type: object
              examples:
                deleteCollection:
                  summary: Delete Collection
                  value:
                    data:
                      id: '5'
                      type: collection
                      attributes:
                        name: Bank Accounts
                        custom_fields: []
                        created_at: '2026-05-27T14:52:05.019-07:00'
                        updated_at: '2026-05-28T11:10:19.399-07:00'
        '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/collection_items:
    get:
      operationId: getCollectionItems
      summary: Collection Items
      description: 'Returns a paginated list of all collection items.


        Query Parameters

        Supports standard Lawmatics query parameters for filtering, sorting, pagination, and field selection.


        Response

        Returns a 200 OK with an array of collection item objects under data. Each item includes:


        - id – The collection item''s unique identifier.

        - type – Resource type (collection_item).

        - attributes – Collection item attributes:

        - collection_id – The ID of the parent collection.

        - contactable_type – The type of the associated record (e.g., Prospect, Contact).

        - contactable_id – The ID of the associated record.

        - custom_field_values – Array of custom field values for this item.

        - created_at – Timestamp when the item was created.

        - updated_at – Timestamp when the item was last updated.'
      tags:
      - Collections
      responses:
        default:
          description: Example response captured in the source Postman collection; the HTTP status code was not recorded by the publisher.
          content:
            application/json:
              schema:
                type: object
              examples:
                collectionItems:
                  summary: Collection Items
                  value:
                    data:
                    - id: '1'
                      type: collection_item
                      attributes:
                        collection_id: 3
                        contactable_type: Prospect
                        contactable_id: 184
                        custom_field_values:
                        - id: '235'
                          custom_field_id: '302'
                          name: Name
                          field_type: text
                          value: The Matrix
                          formatted_value: The Matrix
                        created_at: '2026-05-29T16:02:51.434-07:00'
                        updated_at: '2026-05-29T16:02:51.482-07:00'
                    meta:
                      total_pages: 1
                      limit_per_page: 25
                      total_entries: 1
                    links:
                      self: /v1/collection_items?page=1
        '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
    post:
      operationId: createCollectionItem
      summary: Create Collection Item
      description: "Creates a new collection item, associating a contact or matter record with a collection and optionally setting custom field values.\n\nRequest Body\n\nField\nType\nRequired\nDescription\n\ncontactable_type\nstring\nYes\nThe type of the associated record. Accepted values: Prospect, Contact.\n\ncontactable_id\ninteger\nYes\nThe ID of the associated record.\n\ncollection_id\ninteger\nYes\nThe ID of the collection to add the item to.\n\ncustom_field_values\narray\nNo\nArray of custom field value objects to set on the item.\n\ncustom_field_values Object\n\nField\nType\nDescription\n\nid\ninteger\nThe ID of the custom field.\n\nvalue\nstring\nThe value to set for the custom field.\n\nExample Request Body\n{\n    \"contactable_type\": \"Prospect\",\n    \"contactable_id\": 185,\n    \"collection_id\": 1,\n    \"custom_field_values\": [\n        {\n            \"id\": 295,\n            \"value\": \"The Matrix\"\n        },\n        {\n            \"id\": 296,\n            \"value\": \"1999-03-31\"\n        }\n    ]\n}\n\nResponse\nReturns a 201 Created with the newly created collection item object under data."
      tags:
      - Collections
      responses:
        default:
          description: Example response captured in the source Postman collection; the HTTP status code was not recorded by the publisher.
          content:
            application/json:
              schema:
                type: object
              examples:
                createCollectionItem:
                  summary: Create Collection Item
                  value:
                    data:
                      id: '4'
                      type: collection_item
                      attributes:
                        collection_id: 1
                        contactable_type: Prospect
                        contactable_id: 185
                        custom_field_values:
                        - id: '240'
                          custom_field_id: '295'
                          name: Name
                          field_type: string
                          value: The Matrix
                          formatted_value: The Matrix
                        - id: '241'
                          custom_field_id: '296'
                          name: Director
                          field_type: string
                          value: '1999-03-31'
                          formatted_value: '1999-03-31'
                        created_at: '2026-05-28T11:07:47.114-07:00'
                        updated_at: '2026-05-28T11:07:47.172-07:00'
        '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/collection_items/{collection_item_id}:
    get:
      operationId: getCollectionItem
      summary: Collection Item
      description: 'Returns a single collection item by its ID.


        Path Variables


        Variable

        Description


        collection_item_id

        The unique identifier of the collection item to retrieve.


        Response

        Returns a 200 OK with the collection item object under data, including:


        - id – The collection item''s unique identifier.

        - type – Resource type (collection_item).

        - attributes – Collection item attributes:

        - collection_id – The ID of the parent collection.

        - contactable_type – The type of the associated record (e.g., Prospect, Contact).

        - contactable_id – The ID of the associated record.

        - custom_field_values – Array of custom field values for this item.

        - created_at – Timestamp when the item was created.

        - updated_at – Timestamp when the item was last updated.'
      tags:
      - Collections
      parameters:
      - name: collection_item_id
        in: path
        required: true
        description: The collection item id
        schema:
          type: string
      responses:
        default:
          description: Example response captured in the source Postman collection; the HTTP status code was not recorded by the publisher.
          content:
            application/json:
              schema:
                type: object
              examples:
                collectionItem:
                  summary: Collection Item
                  value:
                    data:
                      id: '1'
                      type: collection_item
                 

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lawmatics/refs/heads/main/openapi/lawmatics-collections-api-openapi.yml