> ## 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.

# List Requests

> Lists the intake requests your token's user can see, newest first. Follow `pagination.next_cursor` until `pagination.has_more` is false.

### Permissions

Requires `Intake API` permission, and one of `Intake requests`, `Intake access`, or `Intake admin` permission. If these permissions are not available to select, contact [support@harvey.ai](mailto:support@harvey.ai).


## OpenAPI

````yaml /intake_api.json get /api/v1/intake/requests
openapi: 3.0.3
info:
  title: Harvey Intake API
  description: >-
    Push legal requests into Harvey Intake from your own systems and read their
    progress back. Submit a request with an idempotency key, any title and
    description, and the documents it concerns, then read the request to see its
    status, assignee, and attachments as they appear in Harvey.
  version: 1.0.0
  contact:
    email: support@harvey.ai
servers:
  - url: https://api.harvey.ai
    description: Harvey API server
security: []
paths:
  /api/v1/intake/requests:
    get:
      tags:
        - Intake
      summary: List Requests
      description: >-
        Lists the intake requests your token's user can see, newest first.
        Follow `pagination.next_cursor` until `pagination.has_more` is false.
      operationId: listIntakeRequests
      parameters:
        - name: limit
          in: query
          required: false
          description: >-
            The page size. Values outside the range are clamped rather than
            rejected.
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
        - name: cursor
          in: query
          required: false
          description: >-
            The `pagination.next_cursor` from the previous page. Send the same
            filters with it, since a cursor resumes only the list it was issued
            for.
          schema:
            type: string
        - name: status
          in: query
          required: false
          description: >-
            Returns only requests in one of these statuses. Repeat it for
            several, as in `status=TODO&status=IN_PROGRESS`. No other parameter
            may repeat.
          style: form
          explode: true
          schema:
            type: array
            items:
              $ref: '#/components/schemas/IntakeRequestStatus'
        - name: created_after
          in: query
          required: false
          description: >-
            Returns only requests created at or after this time. The value must
            include a UTC offset.
          schema:
            type: string
            format: date-time
          example: '2026-10-01T00:00:00Z'
        - name: created_before
          in: query
          required: false
          description: >-
            Returns only requests created before this time. The value must
            include a UTC offset.
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: A page of intake requests, newest first.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntakeRequestList'
              examples:
                listIntakeRequests:
                  summary: Example response for a page with more to follow
                  value:
                    requests:
                      - request_id: 6b5d8f02-4c1a-4f8e-9a77-2d0c3e5b1a94
                        status: IN_PROGRESS
                        harvey_url: >-
                          https://app.harvey.ai/intake/requests/6b5d8f02-4c1a-4f8e-9a77-2d0c3e5b1a94
                        title: Review the Northwind master services agreement
                        description: >-
                          Counterparty sent back redlines on the termination and
                          liability sections.
                        created_at: '2026-10-09T05:12:59.454218Z'
                        updated_at: '2026-10-09T07:41:03.112904Z'
                        completed_at: null
                        due_at: '2026-10-16'
                        assignee:
                          type: USER
                          name: Dana Whitfield
                        attachments:
                          - file_id: 66fead63-460e-4426-a179-39c70b224a99
                            name: northwind-msa.pdf
                    pagination:
                      limit: 1
                      has_more: true
                      next_cursor: >-
                        eyJjcmVhdGVkX2F0IjoiMjAyNi0xMC0wOVQwNToxMjo1OS40NTQyMThaIn0
        '400':
          description: >-
            Bad Request - The `cursor` could not be read, or was issued for
            another list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                invalidCursor:
                  summary: The cursor was not issued for this list
                  value:
                    error: Invalid cursor.
        '401':
          description: >-
            Unauthorized - Invalid or missing API token, or a token that may not
            read intake requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missingPermission:
                  summary: The token lacks permission to read requests
                  value:
                    error: User does not have permission to read Intake requests
        '404':
          description: >-
            Not Found - Intake is not configured for your workspace, or the
            Intake API is not enabled for it
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                notConfigured:
                  summary: Intake is not configured
                  value:
                    error: Intake is not configured for this workspace.
        '422':
          description: >-
            Unprocessable Content - A query parameter is unknown or repeated, a
            `status` is not one this API publishes, or a time has no UTC offset.
            `details` names each one
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntakeRequestListValidationError'
              examples:
                validationFailed:
                  summary: A time without a UTC offset and an unknown parameter
                  value:
                    error: Invalid request
                    details:
                      - field: created_after
                        code: timezone_aware
                        message: This field is invalid
                      - field: sort
                        code: extra_forbidden
                        message: This field is invalid
        '429':
          description: >-
            Too Many Requests - Rate limit exceeded. The response carries a
            `Retry-After` header giving the seconds to wait
        '500':
          description: Internal Server Error
      security:
        - bearerAuth: []
components:
  schemas:
    IntakeRequestStatus:
      type: string
      description: Lifecycle state of an intake request.
      enum:
        - TODO
        - IN_PROGRESS
        - READY_FOR_REVIEW
        - DONE
        - CANCELLED
    IntakeRequestList:
      type: object
      properties:
        requests:
          type: array
          description: Each request in the same shape a read returns.
          items:
            $ref: '#/components/schemas/IntakeRequest'
        pagination:
          $ref: '#/components/schemas/IntakeRequestListPagination'
    Error:
      type: object
      properties:
        error:
          type: string
          description: A readable explanation of the failure. Localized, and may change.
    IntakeRequestListValidationError:
      type: object
      description: >-
        Returned when `GET /api/v1/intake/requests` rejects a request on its
        query parameters.
      properties:
        error:
          type: string
          description: >-
            A readable summary of the failure. Localized, so switch on
            `details[].code` rather than matching this text.
        details:
          type: array
          description: It lists each parameter at fault, one entry per problem.
          items:
            type: object
            properties:
              field:
                type: string
                description: >-
                  The query parameter that has the problem. A rejected `status`
                  is named by its position, as in `status.0`.
                example: created_after
              code:
                type: string
                description: >-
                  The machine-parseable reason the parameter was rejected, such
                  as `extra_forbidden`, `multiple_argument_values`, `enum`,
                  `int_parsing`, or `timezone_aware`. Switch on this value
                  rather than parsing `message`, which is localized and may
                  change.
              message:
                type: string
                description: A readable explanation of the problem with this parameter.
    IntakeRequest:
      type: object
      properties:
        request_id:
          type: string
          format: uuid
          description: The unique identifier of the intake request.
        status:
          $ref: '#/components/schemas/IntakeRequestStatus'
        harvey_url:
          type: string
          description: Deep link to the request in Harvey.
        title:
          type: string
          nullable: true
          description: The request's title.
        description:
          type: string
          nullable: true
          description: The request's description.
        created_at:
          type: string
          format: date-time
          description: When the request was submitted.
        updated_at:
          type: string
          format: date-time
          description: When the request last changed.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: When the request reached `DONE`.
        due_at:
          type: string
          format: date
          nullable: true
          description: The date the request is due.
        assignee:
          description: Who is working the request.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/IntakeRequestAssignee'
        attachments:
          type: array
          description: Files submitted with the request.
          items:
            $ref: '#/components/schemas/IntakeRequestAttachment'
    IntakeRequestListPagination:
      type: object
      properties:
        limit:
          type: integer
          description: The page size applied, after clamping.
        has_more:
          type: boolean
          description: Whether another page follows.
        next_cursor:
          type: string
          nullable: true
          description: >-
            Pass it back as `cursor` for the next page. It is null on the last
            page.
    IntakeRequestAssignee:
      type: object
      description: Who is working the request inside Harvey.
      properties:
        type:
          $ref: '#/components/schemas/IntakeRequestAssigneeType'
        name:
          type: string
          nullable: true
          description: The assignee's display name.
    IntakeRequestAttachment:
      type: object
      description: One file submitted with the request.
      properties:
        file_id:
          type: string
          format: uuid
          description: The unique identifier of the file.
        name:
          type: string
          nullable: true
          description: The file's name.
    IntakeRequestAssigneeType:
      type: string
      description: >-
        Whether the request is being worked by a person or by Harvey's routing
        agent.
      enum:
        - USER
        - AGENT
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Token

````

## Related topics

- [Rate Limits](https://developers.harvey.ai/api-reference/ratelimits.md)
- [List Files in a Vault Project](https://developers.harvey.ai/api-reference/vault/list-files-in-a-vault-project.md)
- [List Project Users](https://developers.harvey.ai/api-reference/vault/list-project-users.md)


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