Lex Machina Law Firms API

Law firm data.

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/lex-machina-law-firms-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 email required.

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

OpenAPI Specification

lex-machina-law-firms-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Lex Machina Alerts Law Firms API
  version: '20260324'
  description: Alerts.
servers:
- url: https://api.lexmachina.com
  description: Lex Machina production API
tags:
- name: Law Firms
  description: Law firm data.
paths:
  /law-firms/{law_firm_id}:
    get:
      tags:
      - Law Firms
      summary: Get Law Firm
      description: 'Gets data for a single law firm.


        - **law_firm_id**: the Lex Machina lawFirmID'
      operationId: get_law_firm
      security:
      - JwtAccessBearer: []
      parameters:
      - name: law_firm_id
        in: path
        required: true
        schema:
          type: integer
          title: Law Firm Id
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/LawFirmData'
                - $ref: '#/components/schemas/LawFirmReference'
                title: Response Get Law Firm Law Firms  Law Firm Id  Get
              examples:
                Single Lawfirm:
                  summary: Single Lawfirm
                  value:
                    name: Department of Justice
                    lawFirmId: 604
        '404':
          description: Not found
          content:
            application/json:
              examples:
                Lawfirm not found:
                  summary: Lawfirm not found
                  value:
                    detail: No law firm matching provided law firm ID was found
        '422':
          description: Error - 422
          content:
            application/json:
              examples:
                Invalid Input:
                  summary: Invalid Input
                  value:
                    detail:
                    - type: int_parsing
                      loc:
                      - path
                      - law_firm_id
                      msg: Input should be a valid integer, unable to parse string as an integer
                      input: string
                Validation error:
                  summary: Validation error
                  value:
                    summary: Invalid input
                    detail:
                    - type: parsing
                      loc:
                      - path
                      - query
                      - body
                      msg: invalid input
                      input: '-1'
        '401':
          description: Invalid or expired token
          content:
            application/json:
              examples:
                Expired token:
                  summary: Expired token
                  value:
                    detail: 'Token time expired: Signature has expired.'
                Invalid token:
                  summary: Invalid token
                  value:
                    detail: Invalid token
  /law-firms:
    get:
      tags:
      - Law Firms
      summary: Get Law Firms
      description: 'Gets data for one or more law firms.


        - **lawFirmIds**: the Lex Machina lawFirmIds


        If any of the the lawFirmIds given are not the current lexmachina lawFirmId, the results will include inputId for disambugation'
      operationId: get_law_firms
      security:
      - JwtAccessBearer: []
      parameters:
      - name: lawFirmIds
        in: query
        required: true
        schema:
          type: array
          uniqueItems: true
          items:
            type: integer
          minItems: 1
          maxItems: 500
          title: Lawfirmids
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  anyOf:
                  - $ref: '#/components/schemas/LawFirmData'
                  - $ref: '#/components/schemas/LawFirmReference'
                title: Response Get Law Firms Law Firms Get
              examples:
                Successful Resolve:
                  summary: Successful Resolve
                  value:
                  - name: Department of Transportation
                    lawFirmId: 445928
                  - name: United States Department of Health & Human Services
                    lawFirmId: 382718
        '404':
          description: Not found
          content:
            application/json:
              examples:
                Law firms not found:
                  summary: Law firms not found
                  value:
                    detail: No law firms matching provided law firm IDs were found
        '401':
          description: Invalid or expired token
          content:
            application/json:
              examples:
                Expired token:
                  summary: Expired token
                  value:
                    detail: 'Token time expired: Signature has expired.'
                Invalid token:
                  summary: Invalid token
                  value:
                    detail: Invalid token
        '422':
          description: Error - 422
          content:
            application/json:
              examples:
                Validation error:
                  summary: Validation error
                  value:
                    summary: Invalid input
                    detail:
                    - type: parsing
                      loc:
                      - path
                      - query
                      - body
                      msg: invalid input
                      input: '-1'
  /search-law-firms:
    get:
      tags:
      - Law Firms
      summary: Seach Law Firms
      description: 'Searches for law firms.


        - **q**: the query string

        - **page_number**: page number of the results

        - **page_size**:  results per page


        This is a case-insensitive search that will match anywhere within the name of the firm.


        The results will have page and totalCount fields as well as a convenience link via the field nextPage.'
      operationId: seach_law_firms
      security:
      - JwtAccessBearer: []
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
          title: Q
      - name: pageNumber
        in: query
        required: false
        schema:
          type: integer
          default: 1
          title: Pagenumber
      - name: pageSize
        in: query
        required: false
        schema:
          type: integer
          default: 1
          title: Pagesize
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LawFirmSearchResult'
              examples:
                Search Law Firms By Name:
                  summary: Search Law Firms By Name
                  value:
                    totalCount: 4
                    page: 1
                    nextPage: https://api.lexmachina.com/search-law-firms?q=matzger&pageNumber=1&pageSize=2?q=matzger&pageNumber=2&pageSize=2
                    lawFirms:
                    - name: Leland, Parachini, Steinberg, Matzger & Melnick
                      lawFirmId: 1220574
                      url: https://api.lexmachina.com/law-firms/1220574
                    - name: John Matzger
                      lawFirmId: 104638538
                      url: https://api.lexmachina.com/law-firms/104638538
        '422':
          description: Error - 422
          content:
            application/json:
              examples:
                Invalid Page:
                  summary: Invalid Page
                  value:
                    detail: Invalid page.
                Validation error:
                  summary: Validation error
                  value:
                    summary: Invalid input
                    detail:
                    - type: parsing
                      loc:
                      - path
                      - query
                      - body
                      msg: invalid input
                      input: '-1'
        '401':
          description: Invalid or expired token
          content:
            application/json:
              examples:
                Expired token:
                  summary: Expired token
                  value:
                    detail: 'Token time expired: Signature has expired.'
                Invalid token:
                  summary: Invalid token
                  value:
                    detail: Invalid token
        '404':
          description: Not found
          content:
            application/json:
              examples:
                Not found:
                  summary: Not found
                  value:
                    summary: Unknown id
                    detail: Not Found
components:
  schemas:
    LawFirmSearchResult:
      properties:
        totalCount:
          type: integer
          title: Totalcount
        page:
          type: integer
          title: Page
        nextPage:
          anyOf:
          - type: string
          - type: 'null'
          title: Nextpage
        lawFirms:
          items:
            $ref: '#/components/schemas/LawFirmResult'
          type: array
          title: Lawfirms
      additionalProperties: false
      type: object
      required:
      - totalCount
      - page
      - lawFirms
      title: LawFirmSearchResult
    LawFirmResult:
      properties:
        name:
          type: string
          title: Name
        lawFirmId:
          type: integer
          title: Lawfirmid
        url:
          type: string
          title: Url
      additionalProperties: false
      type: object
      required:
      - name
      - lawFirmId
      - url
      title: LawFirmResult
    LawFirmReference:
      properties:
        name:
          type: string
          title: Name
        lawFirmId:
          type: integer
          title: Lawfirmid
        inputId:
          type: integer
          title: Inputid
        url:
          type: string
          title: Url
      additionalProperties: false
      type: object
      required:
      - name
      - lawFirmId
      - inputId
      - url
      title: LawFirmReference
      description: 'Indicates that the Lex Machina law firm id input was has changed,

        the inputId is the ID given that should map to the returned lawFirmId.'
    LawFirmData:
      properties:
        name:
          type: string
          title: Name
        lawFirmId:
          type: integer
          title: Lawfirmid
      additionalProperties: false
      type: object
      required:
      - name
      - lawFirmId
      title: LawFirmData
  securitySchemes:
    JwtAccessBearer:
      type: http
      scheme: bearer