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

# ListDocumentRequests

> List every document request of an organization: the crew member asked, the recruiter who asked, the
 requested document types, how many of them the crew member has uploaded, and whether and when Sterndesk
 last emailed the request to the crew member. Use GetOneDocumentRequest for the uploaded documents.



## OpenAPI

````yaml https://edge.sterndesk.com/api/openapi.yaml post /rpc/rpc.v1.OrganizationService/ListDocumentRequests
openapi: 3.1.0
info:
  title: Sterndesk API
  version: 1.0.0
  description: >
    HTTP/JSON access to the Sterndesk data available to your account.


    Every Sterndesk operation is a Connect RPC: send `POST <path>` with a JSON
    body and the

    `Connect-Protocol-Version: 1` header. Authenticate with a personal API key

    (Settings → My account → API keys) using `Authorization: Bearer <key>`.


    A key reads everything documented here. The one write operation is uploading
    candidate

    documents, which needs a key carrying the `sterndesk:documents:write`
    permission; permissions

    are chosen when the key is created and are never added to an existing key.
    Every other write

    operation is rejected.


    ## Uploading candidate documents


    An upload is a batch of documents, the same batch a recruiter hands to
    Sterndesk from the

    dashboard. It may hold the documents of one candidate or of several people:
    Sterndesk groups

    them by identity and creates one candidate per person. Sending them takes
    two calls.


    1. `POST /rpc/rpc.v1.OrganizationService/CreateManualUpload` creates the
    upload and returns a
       signed, time-limited instruction: `upload_url`, `params`, `signature` and `expires_at`,
       together with the limits the upload must satisfy.
    2. `POST /assemblies` sends the files to Transloadit, the upload processor,
    as
       `multipart/form-data`, with `params` and `signature` as form fields. Send both verbatim:
       the signature covers those exact bytes, so pretty-printing `params`, reordering its keys,
       or parsing and re-encoding it invalidates the signature. The files go straight to
       Transloadit and never pass through Sterndesk.

    Processing then continues asynchronously, exactly as it does for a dashboard
    upload.

    `POST /rpc/rpc.v1.OrganizationService/ListManualUploads` reports the
    progress of the upload

    created in step 1.
servers:
  - url: https://edge.sterndesk.com
security:
  - apiKey: []
tags:
  - name: rpc.v1.OrganizationService
    description: Organization service RPC for organization method.
  - name: rpc.v1.RootService
    description: RootService provides top-level RPCs.
paths:
  /rpc/rpc.v1.OrganizationService/ListDocumentRequests:
    post:
      tags:
        - rpc.v1.OrganizationService
      summary: ListDocumentRequests
      description: >-
        List every document request of an organization: the crew member asked,
        the recruiter who asked, the
         requested document types, how many of them the crew member has uploaded, and whether and when Sterndesk
         last emailed the request to the crew member. Use GetOneDocumentRequest for the uploaded documents.
      operationId: rpc.v1.OrganizationService.ListDocumentRequests
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          required: true
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/rpc.v1.ListDocumentRequestsRequest'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpc.v1.ListDocumentRequestsResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
components:
  schemas:
    connect-protocol-version:
      type: number
      examples:
        - 1
      title: Connect-Protocol-Version
      description: Define the version of the Connect protocol
      const: 1
    connect-timeout-header:
      type: number
      examples:
        - 1000
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    rpc.v1.ListDocumentRequestsRequest:
      type: object
      properties:
        organizationId:
          type: string
          title: organization_id
          format: uuid
          description: >-
            id of the organization whose document requests to list; must be the
            caller's organization
      title: ListDocumentRequestsRequest
      additionalProperties: false
      description: request to get a list of document requests.
    rpc.v1.ListDocumentRequestsResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/rpc.v1.ListDocumentRequestsResponse.Item'
          title: items
          description: items
      title: ListDocumentRequestsResponse
      additionalProperties: false
      description: response for list of document requests.
    connect.error:
      type: object
      properties:
        code:
          type: string
          examples:
            - not_found
          enum:
            - canceled
            - unknown
            - invalid_argument
            - deadline_exceeded
            - not_found
            - already_exists
            - permission_denied
            - resource_exhausted
            - failed_precondition
            - aborted
            - out_of_range
            - unimplemented
            - internal
            - unavailable
            - data_loss
            - unauthenticated
          description: >-
            The status code, which should be an enum value of
            [google.rpc.Code][google.rpc.Code].
        message:
          type: string
          description: >-
            A developer-facing error message, which should be in English. Any
            user-facing error message should be localized and sent in the
            [google.rpc.Status.details][google.rpc.Status.details] field, or
            localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/connect.error_details.Any'
          description: >-
            A list of messages that carry the error details. There is no limit
            on the number of messages.
      title: Connect Error
      additionalProperties: true
      description: >-
        Error type returned by Connect:
        https://connectrpc.com/docs/go/errors/#http-representation
    rpc.v1.ListDocumentRequestsResponse.Item:
      type: object
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: id of a document request
        crewId:
          type: string
          title: crew_id
          format: uuid
          description: id of a crew profile
        memberGivenName:
          type: string
          title: member_given_name
          description: given_name of the member of the organisation
        memberFamilyName:
          type: string
          title: member_family_name
          description: family_name of the member of the organisation
        memberId:
          type: string
          title: member_id
          format: uuid
          description: id of a member
        crewGivenName:
          type: string
          title: crew_given_name
          description: given_name of the crew profile
        crewFamilyName:
          type: string
          title: crew_family_name
          description: family_name of the crew profile
        crewPrimaryEmail:
          type: string
          title: crew_primary_email
          description: primary_email of the crew profile
        crewAvatarUrl:
          type:
            - string
            - 'null'
          title: crew_avatar_url
          description: avatar_url of the crew profile
        nrOfDocumentItems:
          type: string
          title: nr_of_document_items
          format: int64
          description: count of document request items
        nrOfDocumentSets:
          type: string
          title: nr_of_document_sets
          format: int64
          description: count of uploaded document sets by crew
        listOfDocumentRequestItems:
          type: array
          items:
            $ref: >-
              #/components/schemas/rpc.v1.ListDocumentRequestsResponse.Item.DocumentRequestItem
          title: list_of_document_request_items
          description: list of document request items
        emailSentAt:
          allOf:
            - $ref: '#/components/schemas/google.protobuf.Timestamp'
          title: email_sent_at
          description: >-
            when Sterndesk last tried to email this request to the crew member;
            absent if it never did
        emailSentState:
          allOf:
            - $ref: '#/components/schemas/rpc.v1.DocumentRequestEmailSentState'
          title: email_sent_state
          description: outcome of the last attempt to email this request to the crew member
      title: Item
      additionalProperties: false
      description: item of a document request
    connect.error_details.Any:
      type: object
      properties:
        type:
          type: string
          description: >-
            A URL that acts as a globally unique identifier for the type of the
            serialized message. For example:
            `type.googleapis.com/google.rpc.ErrorInfo`.
        value:
          type: string
          format: binary
          description: >-
            The Protobuf message, serialized as bytes and base64-encoded. The
            specific message type is identified by the `type` field.
        debug:
          type: object
          title: Debug
          additionalProperties: true
          description: >-
            Deserialized error detail payload. The 'type' field indicates the
            schema. This field is for easier debugging and should not be relied
            upon for application logic.
      additionalProperties: true
      description: >-
        Contains an arbitrary serialized message along with a @type that
        describes the type of the serialized message, with an additional debug
        field for ConnectRPC error details.
    rpc.v1.ListDocumentRequestsResponse.Item.DocumentRequestItem:
      type: object
      properties:
        id:
          type: string
          title: id
          format: uuid
          description: id of the document request item
        documentTypeName:
          type:
            - string
            - 'null'
          title: document_type_name
          description: name of the document type
        documentTypeCode:
          type:
            - string
            - 'null'
          title: document_type_code
          description: code of document type
        documentTypeUploadInstruction:
          type:
            - string
            - 'null'
          title: document_type_upload_instruction
          description: upload instruction of document type
      title: DocumentRequestItem
      additionalProperties: false
      description: item of document request item
    google.protobuf.Timestamp:
      type: string
      examples:
        - '2023-01-15T01:30:15.01Z'
        - '2024-12-25T12:00:00Z'
      format: date-time
      description: >-
        A point in time in RFC 3339 format, with up to nanosecond precision.
        Output uses UTC (`Z`); input may use an offset from UTC.
    rpc.v1.DocumentRequestEmailSentState:
      type: string
      title: DocumentRequestEmailSentState
      enum:
        - DOCUMENT_REQUEST_EMAIL_SENT_STATE_UNSPECIFIED
        - DOCUMENT_REQUEST_EMAIL_SENT_STATE_SUCCESS
        - DOCUMENT_REQUEST_EMAIL_SENT_STATE_FAILED
      description: >-
        Outcome of the last attempt by Sterndesk to email a document request to
        the crew member.
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: 'Personal API key, sent as `Authorization: Bearer <key>`.'

````

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