> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aiinsurance.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List Attorneys

> Returns a paginated list of attorneys for the company.

Attorneys represent legal professionals that can be associated with lawsuits as plaintiff or defense counsel.
Filter by ID or search text, and sort by various fields.

**Required permission:** `company.attorney:read`




## OpenAPI

````yaml /openapi/generated-external-api.yaml get /api/external/companies/{companyId}/attorneys
openapi: 3.0.3
info:
  title: AI Insurance External API
  description: External API for AI Insurance platform
  version: 1.0.0
  contact:
    email: support@aiinsurance.io
servers:
  - url: https://app.aiinsurance.io
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /api/external/companies/{companyId}/attorneys:
    get:
      tags:
        - Attorneys
      summary: List Attorneys
      description: >
        Returns a paginated list of attorneys for the company.


        Attorneys represent legal professionals that can be associated with
        lawsuits as plaintiff or defense counsel.

        Filter by ID or search text, and sort by various fields.


        **Required permission:** `company.attorney:read`
      operationId: listAttorneys
      parameters:
        - $ref: '#/components/parameters/companyId'
        - $ref: '#/components/parameters/attorneyIdFilter'
        - $ref: '#/components/parameters/filterText'
        - $ref: '#/components/parameters/attorneySortBy'
        - $ref: '#/components/parameters/sortDirection'
        - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Paginated list of attorneys
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Attorney'
                  totalCount:
                    type: integer
                    description: Total number of matching attorneys across all pages
              examples:
                success:
                  summary: List of attorneys
                  value:
                    items:
                      - id: 550e8400-e29b-41d4-a716-446655440001
                        companyId: 660e8400-e29b-41d4-a716-446655440000
                        name: Jane Smith
                        email: jane@smithlaw.com
                        phoneNumber: +1-555-123-4567
                        lawFirmId: 770e8400-e29b-41d4-a716-446655440000
                        createdAt: '2026-01-15T10:30:00.000Z'
                        updatedAt: '2026-01-16T14:20:00.000Z'
                      - id: 550e8400-e29b-41d4-a716-446655440002
                        companyId: 660e8400-e29b-41d4-a716-446655440000
                        name: John Doe
                        email: null
                        phoneNumber: null
                        lawFirmId: null
                        createdAt: '2026-01-10T08:00:00.000Z'
                        updatedAt: null
                    totalCount: 2
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    companyId:
      name: companyId
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: Company identifier
    attorneyIdFilter:
      name: id
      in: query
      schema:
        oneOf:
          - type: string
            format: uuid
          - type: array
            items:
              type: string
              format: uuid
      description: Filter by specific attorney ID(s)
    filterText:
      name: filterText
      in: query
      schema:
        type: string
      description: Search across quote number, description, and other text fields
    attorneySortBy:
      name: sortBy
      in: query
      schema:
        type: string
        enum:
          - createdAt
          - updatedAt
          - name
        default: createdAt
      description: Field to sort by (default createdAt)
    sortDirection:
      name: sortDirection
      in: query
      schema:
        type: string
        enum:
          - asc
          - desc
        default: desc
      description: Sort direction (default desc)
    page:
      name: page
      in: query
      schema:
        type: integer
        minimum: 1
        default: 1
      description: Page number (1-based, default 1, page size 50)
  schemas:
    Attorney:
      type: object
      description: An attorney in the system
      properties:
        id:
          type: string
          format: uuid
          description: Attorney identifier
        companyId:
          type: string
          format: uuid
          description: Company identifier
        name:
          type: string
          description: Attorney name
        email:
          type: string
          format: email
          nullable: true
          description: Attorney email address
        phoneNumber:
          type: string
          nullable: true
          description: Attorney phone number
        lawFirmId:
          type: string
          format: uuid
          nullable: true
          description: Associated law firm payee identifier
        createdAt:
          type: string
          format: date-time
          nullable: true
          description: When the attorney was created (ISO 8601)
        updatedAt:
          type: string
          format: date-time
          nullable: true
          description: When the attorney was last updated (ISO 8601)
    ErrorResponse:
      type: object
      description: Standard error response for all external API endpoints
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Machine-readable error code
              example: VALIDATION_ERROR
            message:
              type: string
              description: Human-readable error message
              example: 'submissionId: Required field is missing'
            details:
              type: array
              description: Additional details for validation errors (field-level errors)
              items:
                type: object
                properties:
                  field:
                    type: string
                    description: The field that caused the error
                    example: submissionId
                  message:
                    type: string
                    description: Description of the field error
                    example: Required field is missing
  responses:
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missingApiKey:
              summary: Missing API key
              value:
                error:
                  code: UNAUTHORIZED
                  message: Authorization header is required
            bearerTokenNotAllowed:
              summary: Bearer token used instead of API key
              value:
                error:
                  code: UNAUTHORIZED
                  message: External API endpoints require API key authentication
    Forbidden:
      description: Forbidden - Insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            insufficientPermissions:
              summary: Insufficient permissions
              value:
                error:
                  code: FORBIDDEN
                  message: Insufficient permissions to perform this action
    InternalServerError:
      description: Internal Server Error - Unexpected error occurred
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            internalError:
              summary: Unexpected server error
              value:
                error:
                  code: INTERNAL_ERROR
                  message: An unexpected error occurred. Please try again later.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key authentication. Include your API key in the Authorization
        header.

````