# Get Requests Filtered

Endpoint: PUT /filter
Version: 1.0
Security: oauth2

## Request fields (application/json):

  - `parentId` (string)
    Return requests belonging to this parent object. A parent is an Audit or an Assessment

  - `parentType` (string)
    The type of the object.
    Enum: "assessment", "audit", "connection", "control", "controlScope", "domain", "freshnessHistory", "exportFile", "label", "organization", "organizationUser", "policy", "program", "proof", "request", "requirement", "risk", "riskRegister", "section", "task", "scope", "template", "user"

  - `status` (string)
    The status of the object.
    Enum: "active", "archived", "pending", "canceled", "deleted", "closed"

  - `assigneeIds` (array)
    Return requests assigned to any of the provided users. Include null in the array to also match unassigned requests
    Example: ["a7b8c9d0-e1f2-3456-abcd-ef1234567890"]

  - `workItemStatuses` (array)
    Return requests with one of these work statuses
    Enum: "notStarted", "inProgress", "internalReview", "submittedToAuditor", "needsRevision", "closed", "approved"

  - `groupIds` (array)
    Return requests assigned to one of these groups

  - `priorities` (array)
    Return requests with one of these priorities
    Enum: "highest", "high", "medium", "low", "lowest"

  - `dueDateFilters` (array)
    Return requests whose due date matches at least one of these date-range conditions
    Example: [{"date":"2024-10-01","endDate":"2024-12-31","kind":"between"}]

  - `dueDateFilters.date` (string)
    The date to filter on, in yyyy-MM-dd format (no timezone). Its role depends on kind: the single date for on, the start of the range for between, or the boundary for beforeOrOn/afterOrOn. Ignored for noDate
    Example: "2024-10-01"

  - `dueDateFilters.endDate` (string)
    The end of the range, in yyyy-MM-dd format (no timezone). Only used when kind is between
    Example: "2024-12-31"

  - `dueDateFilters.kind` (string)
    How date and endDate are interpreted
    Enum: "on", "between", "beforeOrOn", "afterOrOn", "noDate"

  - `createdByIds` (array)
    Return requests created by one of these users

  - `sourceAuditIds` (array)
    Return requests whose parent is one of these audits
    Example: ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]

  - `controlIds` (array)
    Return requests linked to one of these controls

  - `searchTerms` (array)
    Return requests where any one of these terms matches the reference, summary, description, or identifier. Unlike the other properties, the terms are ORed with each other; blank terms are ignored

  - `customFieldValues` (array)
    Return requests matching all of these custom field conditions
    Example: [{"customFieldId":"ceb912ab-519b-11ee-a644-522476618ae8","textValues":["John Smith"]}]

  - `customFieldValues.customFieldId` (string)
    The unique identifier of the custom field to filter on
    Example: "ceb912ab-519b-11ee-a644-522476618ae8"

  - `customFieldValues.isNotSet` (boolean)
    If true, matches requests where this custom field has no value set, and every other property on this filter is ignored

  - `customFieldValues.textValues` (array)
    Matching values for a field of type text
    Example: ["John Smith"]

  - `customFieldValues.numberValues` (array)
    Matching values for a field of type number

  - `customFieldValues.userValues` (array)
    Matching values for a field of type user

  - `customFieldValues.selections` (array)
    Matching option values for a field of type textSingleSelect or textMultiSelect

  - `customFieldValues.dateRanges` (array)
    Matching date ranges for a field of type date
    Example: [{"date":"2024-10-01","endDate":"2024-12-31","kind":"between"}]

## Response 200 fields (application/json):

  - `id` (string, required)
    The unique identifier for the request
    Example: "d4e5f6a7-b8c9-0123-abcd-ef4567890123"

  - `orgId` (string, required)
    The unique identifier of the organization the request belongs to
    Example: "ce83e3cd-5199-11ee-a644-522476618ae8"

  - `index` (integer)
    The index of the request used for generating unique references/identifiers of requests
    Example: 1

  - `parentId` (string, required)
    The unique identifier of the parent object (e.g. audit, assessment)
    Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

  - `parentType` (string)
    The type of the object.
    Enum: same as `parentType` (23 values)

  - `parentName` (string)
    The name of the parent object (e.g. audit, assessment)
    Example: "Q4 2024 SOC2 Audit"

  - `parentWorkStatus` (string)
    The work status of a parent object (e.g. audit, assessment)
    Enum: "active", "completed"

  - `reference` (string, required)
    A user-defined identifier for the request
    Example: "REF-001"

  - `summary` (string, required)
    The summary of the request
    Example: "Provide access control documentation"

  - `description` (string)
    The description of the request
    Example: "Please provide documentation of access control policies and procedures."

  - `assigneeId` (string)
    The unique identifier of the assignee for the request
    Example: "a7b8c9d0-e1f2-3456-abcd-ef1234567890"

  - `workItemStatus` (string, required)
    The work item status of a request. Valid values depend on the parent object type (e.g. audit, assessment)
    Enum: same as `workItemStatuses` (7 values)

  - `priority` (string)
    The priority level.
    Enum: same as `priorities` (5 values)

  - `dueDate` (string)
    The due date for the request (ISO-8601 format)
    Example: "2024-12-31 12:00:00+00:00"

  - `key` (string)
    A computed key for the request (e.g. REQ-1)
    Example: "REQ-1"

  - `isPrivate` (boolean)
    Whether the request is private

  - `groupId` (string)
    The unique identifier of the group assigned to the request

  - `clonedRequestId` (string)
    The unique identifier of the request this was cloned from, if applicable

  - `status` (string)
    The status of the object.
    Enum: same as `status` (6 values)

  - `createdBy` (string)
    The unique identifier of the user who created the request
    Example: "a7b8c9d0-e1f2-3456-abcd-ef1234567890"

  - `createdOn` (string)
    The date and time the request was created (ISO-8601 format)
    Example: "2024-10-01 08:00:00+00:00"

  - `updatedBy` (string)
    The unique identifier of the user who last updated the request
    Example: "a7b8c9d0-e1f2-3456-abcd-ef1234567890"

  - `updatedOn` (string)
    The date and time the request was last updated (ISO-8601 format)
    Example: "2024-10-15 14:30:00+00:00"

  - `permissions` (array)
    List of permissions the API user has on the request
    Example: []

  - `_isPartialData` (boolean)
    This is true when the user does not have read permissions on the request

  - `metadata` (object)
    Additional details associated with the request. Only populated when expanded
    Example: {"createdByAI":true,"aiConfidence":85,"aiReason":"Suggested based on similar requests from prior audits","gapAssessmentId":"b8c9d0e1-f2a3-4567-abcd-ef1234567890"}

  - `customFields` (array)
    The list of custom field values for the request
    Example: [{"fieldId":"ceb912ab-519b-11ee-a644-522476618ae8","fieldName":"Sponsor","fieldType":"text","textValue":"John Smith"}]

  - `customFields.fieldId` (string)
    Unique identifier for the custom field

  - `customFields.fieldName` (string)
    Name of the custom field

  - `customFields.fieldType` (string)
    Type of field
    Enum: "text", "number", "date", "user", "textSingleSelect", "textMultiSelect"

  - `customFields.numberFormat` (string)
    Format if the field type is number
    Enum: "decimal", "percentage"

  - `customFields.textValue` (string)
    Value if the field type is text

  - `customFields.numberValue` (number)
    Value if the field type is number

  - `customFields.dateValue` (string)
    Value if the field type is date

  - `customFields.userValue` (string)
    Value if the field type is user

  - `customFields.selection` (string)
    Value for textSingleSelect

  - `customFields.selections` (array)
    List of values for textMultiSelect


## Response 401 fields

## Response 403 fields
