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

# Add Client Matters

> Deprecated. Use POST /api/v2/clients followed by POST /api/v2/matters for new integrations. See the [Client Matters guide](/guides/client_matters#migrate-from-v1-writes) for migration steps. The v1 GET and DELETE endpoints remain available. When the workspace requires legacy name validation, each name must split into client and matter identifiers using the configured delimiter. Names that do not match appear in failed. A missing required delimiter rejects the batch with HTTP 400 and kind: DELIMITER_REQUIRED.

### Permissions

Requires `Client matters admin` permission.


## OpenAPI

````yaml /client_matters_api.json post /api/v1/client_matters
openapi: 3.0.1
info:
  title: Harvey Client Matter API
  description: >-
    Create and update clients and matters by your firm identifiers. Retrieve and
    delete client matters through the v1 endpoints.
  version: 1.0.0
  contact:
    email: support@harvey.ai
servers:
  - url: https://api.harvey.ai
    description: Harvey API server
security: []
paths:
  /api/v1/client_matters:
    post:
      tags:
        - Add
      summary: Add Client Matters
      description: >-
        Deprecated. Use POST /api/v2/clients followed by POST /api/v2/matters
        for new integrations. See the [Client Matters
        guide](/guides/client_matters#migrate-from-v1-writes) for migration
        steps. The v1 GET and DELETE endpoints remain available. When the
        workspace requires legacy name validation, each name must split into
        client and matter identifiers using the configured delimiter. Names that
        do not match appear in failed. A missing required delimiter rejects the
        batch with HTTP 400 and kind: DELIMITER_REQUIRED.
      operationId: addClientMatters
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                client_matters:
                  type: array
                  maxItems: 10000
                  items:
                    type: object
                    properties:
                      cm_name:
                        type: string
                        maxLength: 128
                        description: The name of the client matter.
                        example: 123-45
                      cm_desc:
                        type: string
                        maxLength: 200
                        description: A description of the client matter.
                        example: Acme Corp Bankruptcy
                      cm_allowed:
                        type: string
                        enum:
                          - 'true'
                          - t
                          - '1'
                          - 'false'
                          - f
                          - '0'
                        default: 'true'
                        description: >-
                          Boolean-like string indicating if the client matter is
                          allowed in Harvey.
                    required:
                      - cm_name
              required:
                - client_matters
      responses:
        '200':
          description: >-
            The number of successfully added client matters and the number of
            failures.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success_count:
                    type: integer
                    example: 1
                    description: >-
                      The total amount of client matters that successfully
                      uploaded.
                  failed:
                    type: array
                    items:
                      type: string
                    description: >-
                      A list of cm_names that failed to upload. If all uploads
                      were successful, you will receive an empty array.
                    example: []
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
        '429':
          description: Rate limit exceeded.
        '500':
          description: Internal server error.
      deprecated: true
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Token

````

## Related topics

- [Audit Logs](/guides/audit_logs.md)
- [Client Matters](/guides/client_matters.md)
- [Get Client Matters](/api-reference/retrieve/get-client-matters.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.