Lawmatics Contacts API

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

Operations 13

GET /v1/contacts/find_by_phone/{phone_number} Find Contact By Phone Number #
GET /v1/contacts/find_by_email/{email_address} Find Contact By Email Address #
GET /v1/contacts/find_by_name/{name} Find Contact By Name #
GET /v1/custom_contact_types/{custom_contact_type_id} Custom Contact Type #
DELETE /v1/custom_contact_types/{custom_contact_type_id} Delete Custom Contact Type #
GET /v1/custom_contact_types Custom Contact Types #
POST /v1/custom_contact_types Create Custom Contact Type #
PUT /v1/custom_contact_types/{contact_id} Update Custom Contact Type #
GET /v1/contacts/{contact_id} Contact #
PUT /v1/contacts/{contact_id} Update Contact #
DELETE /v1/contacts/{contact_id} Delete Contact #
GET /v1/contacts Contacts #
POST /v1/contacts Create Contact #

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-contacts-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-contacts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lawmatics OAuth Contacts 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: 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'
paths:
  /v1/contacts/find_by_phone/{phone_number}:
    get:
      operationId: findContactByPhoneNumber
      summary: Find Contact By Phone Number
      description: Fuzzy find a specific Contact by Phone Number.
      tags:
      - Contacts
      parameters:
      - name: phone_number
        in: path
        required: true
        description: The phone number
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                getFindContactByPhoneNumber:
                  summary: GET Find Contact By Phone Number
                  value:
                    data:
                      id: '31556'
                      type: contact
                      attributes:
                        first_name: test
                        last_name: test
                        email: test@nice.com
                        phone: 123-123-1234
                        created_at: '2018-09-06T19:17:17.786-07:00'
                        updated_at: '2018-09-10T16:31:58.836-07:00'
                      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
  /v1/contacts/find_by_email/{email_address}:
    get:
      operationId: findContactByEmailAddress
      summary: Find Contact By Email Address
      description: Fuzzy find a specific Contact by Email Address.
      tags:
      - Contacts
      parameters:
      - name: email_address
        in: path
        required: true
        description: The email address
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                getFindContactByEmailAddress:
                  summary: GET Find Contact By Email Address
                  value:
                    data:
                      id: '225'
                      type: contact
                      attributes:
                        first_name: Existing
                        last_name: Contact
                        email: roey@lawmatics.com
                        phone: 520-730-1042
                        created_at: '2018-07-17T10:32:50.009-07:00'
                        updated_at: '2019-03-28T20:17:41.198-07:00'
                      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
  /v1/contacts/find_by_name/{name}:
    get:
      operationId: findContactByName
      summary: Find Contact By Name
      description: Fuzzy find (case-insensitive) a specific Contact by their Name. You can pass either '{first_name} {last_name}' or simply '{first_name}'
      tags:
      - Contacts
      parameters:
      - name: name
        in: path
        required: true
        description: The name
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                getFindContactByName:
                  summary: GET Find Contact By Name
                  value:
                    data:
                      id: '76746'
                      type: contact
                      attributes:
                        first_name: Roey
                        last_name: Chasman
                        email: null
                        phone: null
                        created_at: '2019-02-04T12:38:11.574-08:00'
                        updated_at: '2019-02-04T12:38:11.574-08:00'
                      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
  /v1/custom_contact_types/{custom_contact_type_id}:
    get:
      operationId: getCustomContactType
      summary: Custom Contact Type
      description: A specific Custom Contact Type by ID
      tags:
      - Contacts
      parameters:
      - name: custom_contact_type_id
        in: path
        required: true
        description: The custom contact type id
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                getCustomContactType:
                  summary: GET Custom Contact Type
                  value:
                    data:
                      id: '15'
                      type: custom_contact_type
                      attributes:
                        name: Judge
                        created_at: '2023-09-21T15:52:24.996-07:00'
                        updated_at: '2023-09-21T15:52:24.996-07:00'
                      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
    delete:
      operationId: deleteCustomContactType
      summary: Delete Custom Contact Type
      description: 'Delete an existing Custom Contact Type by ID.


        Warning: This is irreversible!'
      tags:
      - Contacts
      parameters:
      - name: custom_contact_type_id
        in: path
        required: true
        description: The custom contact type id
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                deleteDeleteCustomContactType:
                  summary: DELETE Delete Custom Contact Type
                  value:
                    data:
                      id: '15'
                      type: custom_contact_type
                      attributes:
                        name: Pudge
                        created_at: '2023-09-21T15:49:44.773-07:00'
                        updated_at: '2023-09-21T15:52:02.257-07:00'
                      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
  /v1/custom_contact_types:
    get:
      operationId: getCustomContactTypes
      summary: Custom Contact Types
      description: A paginated list of all Custom Contact Type in Lawmatics
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                getCustomContactTypes:
                  summary: GET Custom Contact Types
                  value:
                    data:
                    - id: '15'
                      type: custom_contact_type
                      attributes:
                        name: Judge
                        created_at: '2023-09-21T15:31:26.656-07:00'
                        updated_at: '2023-09-21T15:31:26.656-07:00'
                      relationships: {}
                    - id: '12'
                      type: custom_contact_type
                      attributes:
                        name: test2
                        created_at: '2023-09-21T11:00:26.002-07:00'
                        updated_at: '2023-09-21T11:00:26.002-07:00'
                      relationships: {}
                    - id: '10'
                      type: custom_contact_type
                      attributes:
                        name: test
                        created_at: '2023-09-05T10:50:34.586-07:00'
                        updated_at: '2023-09-21T11:00:04.446-07:00'
                      relationships: {}
                    - id: '7'
                      type: custom_contact_type
                      attributes:
                        name: Cool Person
                        created_at: '2023-08-10T21:13:53.027-07:00'
                        updated_at: '2023-08-10T21:13:53.027-07:00'
                      relationships: {}
                    - id: '2'
                      type: custom_contact_type
                      attributes:
                        name: Client
                        created_at: '2023-07-21T14:56:35.146-07:00'
                        updated_at: '2023-07-21T14:56:35.146-07:00'
                      relationships: {}
                    meta:
                      total_pages: 1
                      limit_per_page: 25
                      total_entries: 5
                    links:
                      self: /v1/custom_contact_types?page=1
                getFilteredCustomContactTypes:
                  summary: GET Filtered Custom Contact Types
                  value:
                    data:
                    - id: '15'
                      type: custom_contact_type
                      attributes:
                        name: Judge
                        created_at: '2023-09-21T15:31:26.656-07:00'
                        updated_at: '2023-09-21T15:31:26.656-07:00'
                      relationships: {}
                    meta:
                      total_pages: 1
                      limit_per_page: 25
                      total_entries: 1
                    links:
                      self: /v1/custom_contact_types?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: createCustomContactType
      summary: Create Custom Contact Type
      description: Create a new Custom Contact Type
      tags:
      - Contacts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              name: Judge-6f3bc6c0-98c7-4473-be46-62976e472353
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
              examples:
                postCreateCustomContactType:
                  summary: POST Create Custom Contact Type
                  value:
                    data:
                      id: '15'
                      type: custom_contact_type
                      attributes:
                        name: Judge
                        created_at: '2023-09-21T15:49:44.773-07:00'
                        updated_at: '2023-09-21T15:49:44.773-07:00'
                      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
  /v1/custom_contact_types/{contact_id}:
    put:
      operationId: updateCustomContactType
      summary: Update Custom Contact Type
      description: Update an existing Custom Contact Type by ID.
      tags:
      - Contacts
      parameters:
      - name: contact_id
        in: path
        required: true
        description: The contact id
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              name: Pudge
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                putPATCHUpdateCustomContactType:
                  summary: PUT/PATCH Update Custom Contact Type
                  value:
                    data:
                      id: '15'
                      type: custom_contact_type
                      attributes:
                        name: Pudge
                        created_at: '2023-09-21T11:00:26.002-07:00'
                        updated_at: '2023-09-21T15:43:39.161-07:00'
                      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
  /v1/contacts/{contact_id}:
    get:
      operationId: getContact
      summary: Contact
      description: A specific Contact by id
      tags:
      - Contacts
      parameters:
      - name: contact_id
        in: path
        required: true
        description: The contact id
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                getContact:
                  summary: GET Contact
                  value:
                    data:
                      id: '25'
                      type: contact
                      attributes:
                        first_name: Gregor
                        last_name: Clegane
                        email: gregor@clegane.com
                        email_address: gregor@clegane.com
                        phone: null
                        phone_number: null
                        birthdate: null
                        name_prefix: null
                        middle_name: null
                        name_suffix: null
                        informal_name: null
                        employer: null
                        occupation: null
                        citizenship: null
                        bio: null
                        title: null
                        hobbies: null
                        social_security: null
                        age: null
                        driver_license: null
                        gender: null
                        marital_status: null
                        timezone: null
                        tracking_source_id: null
                        date_of_last_contact: '2018-03-07T13:38:58.288-08:00'
                        days_since_last_contact: 223
                        photo_url: https://lm.lawmatics.com/attachments/0f060d4bbd3d8a2488c3f0b3352ce3ec0c9b6f3c/store/a49240eaa2d0bb7355b82b010b07a2c8f72c4d514b70616198d522266d48/photo
                        custom_fields: []
                        contact_type: PNC
                        created_at: '2018-03-07T13:38:58.288-08:00'
                        updated_at: '2018-03-13T08:09:50.696-07:00'
                      relationships:
                        prospects:
                          data:
                          - id: '21'
                            type: prospect
                        created_by:
                          data:
                            id: '15'
                            type: user
                        client:
                          data: null
                        company:
                          data: null
        '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: updateContact
      summary: Update Contact
      description: 'Update an existing Contact by ID.


        Passing Custom Field id and value, will set the custom field value on the Contact, and overwrite any existing value. Passing null as the value will clear it out.'
      tags:
      - Contacts
      parameters:
      - name: contact_id
        in: path
        required: true
        description: The contact id
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              first_name: Lawmatics
              last_name: ExampleChanged
              email: roey+changed@lawmatics.com
              phone: 555-555-5555
              notes:
              - name: Cool Note
                body: This is a long form sweet new note
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                putPATCHUpdateContact:
                  summary: PUT/PATCH Update Contact
                  value:
                    data:
                      id: '161260'
                      type: contact
                      attributes:
                        first_name: Lawmatics
                        last_name: ExampleChanged
                        email: roey+changed@lawmatics.com
                        custom_fields:
                        - id: 4788
                          name: text
                          field_type: string
                          value: Changed String
                          formatted_value: Changed String
                        - id: 4788
                          name: text
                          field_type: string
                          value: Changed String
                          formatted_value: Changed String
                      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
    delete:
      operationId: deleteContact
      summary: Delete Contact
      description: 'Delete an existing Contact by ID.


        Warning: This is irreversible!'
      tags:
      - Contacts
      parameters:
      - name: contact_id
        in: path
        required: true
        description: The contact id
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                deleteDeleteContact:
                  summary: DELETE Delete Contact
                  value:
                    data:
                      id: '161260'
                      type: contact
                      attributes:
                        first_name: Lawmatics
                        last_name: ExampleChanged
                        email: null
                        phone: null
                        created_at: '2021-08-27T15:36:02.920-07:00'
                        updated_at: '2021-08-27T15:40:57.045-07:00'
                      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
  /v1/contacts:
    get:
      operationId: getContacts
      summary: Contacts
      description: A paginated list of all Contacts in Lawmatics
      tags:
      - Contacts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                getContacts:
                  summary: GET Contacts
                  value:
                    data:
                    - id: '136'
                      type: contact
                      attributes:
                        first_name: Linda
                        last_name: Baker
                        email: Linda35@gmail.com
                        created_at: '2018-03-20T15:12:57.664-07:00'
                        updated_at: '2018-07-16T15:12:57.669-07:00'
                      relationships: {}
                    - id: '135'
                      type: contact
                      attributes:
                        first_name: James
                        last_name: Lee
                        email: James34@gmail.com
                        created_at: '2018-04-18T15:12:57.598-07:00'
                        updated_at: '2018-07-16T15:12:57.605-07:00'
                      relationships: {}
                    - id: '134'
                      type: contact
                      attributes:
                        first_name: Barbara
                        last_name: Martiniez
                        email: Barbara33@gmail.com
                        created_at: '2018-06-21T15:12:57.524-07:00'
                        updated_at: '2018-07-16T15:12:57.529-07:00'
                      relationships: {}
                    - id: '133'
                      type: contact
                      attributes:
                        first_name: Charles
                        last_name: Williams
                        email: Charles32@gmail.com
                        created_at: '2018-03-19T15:12:57.445-07:00'
                        updated_at: '2018-07-16T15:12:57.450-07:00'
                      relationships: {}
                    - id: '132'
                      type: contact
                      attributes:
                        first_name: Joseph
                        last_name: Moore
                        email: Joseph31@gmail.com
                        created_at: '2018-06-28T15:12:57.380-07:00'
                        updated_at: '2018-07-16T15:12:57.384-07:00'
                      relationships: {}
                    - id: '131'
                      type: contact
                      attributes:
                        first_name: Joseph
                        last_name: Rodriguez
                        email: Joseph30@gmail.com
                        created_at: '2018-06-10T15:12:57.310-07:00'
                        updated_at: '2018-07-16T15:12:57.317-07:00'
                      relationships: {}
                    - id: '130'
                      type: contact
                      attributes:
                        first_name: Susan
                        last_name: Smith
                        email: Susan29@gmail.com
                        created_at: '2018-04-16T15:12:57.232-07:00'
                        updated_at: '2018-07-16T15:12:57.238-07:00'
                      relationships: {}
                    - id: '129'
                      type: contact
                      attributes:
                        first_name: Richard
                        last_name: Miller
                        email: Richard28@gmail.com
                        created_at: '2018-06-23T15:12:57.164-07:00'
                        updated_at: '2018-07-16T15:12:57.169-07:00'
                      relationships: {}
                    - id: '128'
                      type: contact
                      attributes:
                        first_name: Barbara
                        last_name: Moore
                        email: Barbara27@gmail.com
                        created_at: '2018-05-01T15:12:57.102-07:00'
                        updated_at: '2018-07-16T15:12:57.107-07:00'
                      relationships: {}
                    - id: '127'
                      type: contact
                      attributes:
                        first_name: William
                        last_name: Walker
                        email: William26@gmail.com
                        created_at: '2018-04-04T15:12:57.039-07:00'
                        updated_at: '2018-07-16T15:12:57.044-07:00'
                      relationships: {}
                    - id: '126'
                      type: contact
                      attributes:
                        first_name: Patricia
                        last_name: Jones
                        email: Patricia25@gmail.com
                        created_at: '2018-02-14T14:12:56.978-08:00'
                        updated_at: '2018-07-16T15:12:56.983-07:00'
                      relationships: {}
                    - id: '125'
                      type: contact
                      attributes:
                        first_name: Sarah
                        last_name: Wilson
                        email: Sarah24@gmail.com
                        created_at: '2018-04-09T15:12:56.918-07:00'
                        updated_at: '2018-07-16T15:12:56.923-07:00'
                      relationships: {}
                    - id: '124'
                      type: contact
                      attributes:
                        first_name: Susan
                        last_name: Davis
                        email: Susan23@gmail.com
                        created_at: '2018-01-26T14:12:56.855-08:00'
                        updated_at: '2018-07-16T15:12:56.860-07:00'
                      relationships: {}
                    - id: '123'
                      type: contact
                      attributes:
                        first_name: Richard
                        last_name: Taylor
                        email: Richard22@gmail.com
                        created_at: '2018-05-02T15:12:56.790-07:00'
                        updated_at: '2018-07-16T15:12:56.796-07:00'
                      relationships: {}
                    - id: '122'
                      type: contact
                      attributes:
                        first_name: Karen
                        last_name: Lee
                        email: Karen21@gmail.com
                        created_at: '2018-07-04T15:12:56.724-07:00'
                        updated_at: '2018-07-16T15:12:56.729-07:00'
                      relationships: {}
                    - id: '121'
                      type: contact
                      attributes:
                        first_name: David
                        last_name: Martiniez
                        email: David20@gmail.com
                        created_at: '2018-04-22T15:12:56.658-07:00'
                        updated_at: '2018-07-16T15:12:56.664-07:00'
                      relationships: {}
                    - id: '120'
                      type: contact
                      attributes:
                        first_name: Patricia
                        last_name: Martiniez
                        email: Patricia19@gmail.com
                        created_at: '2018-01-28T14:12:56.585-08:00'
                        updated_at: '2018-07-16T15:12:56.591-07:00'
                      relationships: {}
                    - id: '119'
                      type: contact
                      attributes:
                        first_name: Susan
                        last_name: Lee
                        email: Susan18@gmail.com
                        created_at: '2018-05-18T15:12:56.504-07:00'
                        updated_at: '2018-07-16T15:12:56.509-07:00'
                      relationships: {}
                    - id: '118'
                      type: contact
                      attributes:
                        first_name: Joseph
                        last_name: Lee
                        email: Joseph17@gmail.com
                        created_at: '2018-02-01T14:12:56.442-08:00'
                        updated_at: '2018-07-16T15:12:56.446-07:00'
                      relationships: {}
                    - id: '117'
                      type: contact
                      attributes:
                        first_name: Joseph
                        last_name: Baker
                        email: Joseph16@gmail.com
                        created_at: '2018-02-19T14:12:56.384-08:00'
                        updated_at: '2018-07-16T15:12:56.388-07:00'
                      relationships: {}
                    - id: '116'
                      type: contact
                      attributes:
                        first_name: Lisa
                        last_name: Johnson
                        email: Lisa15@gmail.com
                        created_at: '2018-04-08T15:12:56.327-07:00'
                        updated_at: '2018-07-16T15:12:56.331-07:00'
                      relationships: {}
                    - id: '115'
                      type: contact
                      attributes:
                        first_name: Sarah
                        last_name: Brown
                        email: Sarah14@gmail.com
                        created_at: '2018-06-06T15:12:56.269-07:00'
                        updated_at: '2018-07-16T15:12:56.273-07:00'
                      relationships: {}
                    - id: '114'
                      type: contact
                      attributes:
                        first_name: Robert
                        last_name: Jackson
                        email: Robert13@gmail.com
                        created_at: '2018-05-08T15:12:5

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