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

# Create task requirement set

> Creates a task requirement set and assigns it to a group.



## OpenAPI

````yaml /reference/manage-vanta.json post /task-requirement-sets
openapi: 3.0.0
info:
  title: Manage Vanta
  version: 1.0.0
  description: >-
    The REST API lets customers query and mutate Vanta's data. Use this API to
    automate bulk actions, query data for custom workflows and dashboards, and
    bolster your security operations


    **Note for Vanta Gov (FedRAMP) customers:** Select `Vanta Gov (FedRAMP)`
    from the server dropdown to issue requests against
    `https://api.vanta-gov.com`. The OAuth token URL shown below defaults to the
    commercial host — replace it with `https://api.vanta-gov.com/oauth/token`.
  termsOfService: https://www.vanta.com/terms
  license:
    name: UNLICENSED
  contact:
    name: API Support
    url: https://help.vanta.com/
    email: support@vanta.com
servers:
  - url: https://api.vanta.com/v1
    description: Vanta (Commercial)
  - url: https://api.vanta-gov.com/v1
    description: Vanta Gov (FedRAMP)
security: []
paths:
  /task-requirement-sets:
    post:
      tags:
        - Task Requirement Sets
      summary: Create task requirement set
      description: Creates a task requirement set and assigns it to a group.
      operationId: CreateTaskRequirementSet
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTaskRequirementSetInput'
      responses:
        '201':
          description: Task requirement set created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskRequirementSet'
              examples:
                Example 1:
                  value:
                    id: 5f2c939a52855e725c8d5824
                    name: Engineering Onboarding
                    description: Requirements for engineers
                    isReusable: true
                    createdAt: '2024-03-07T18:46:05.944Z'
                    updatedAt: '2024-03-07T18:46:05.944Z'
                    taskRequirements:
                      onboarding:
                        policyAcceptance:
                          required: true
                          acceptAll: true
                        backgroundCheck:
                          required: true
                          cutoffDate: null
                        securityTraining:
                          required: true
                          requiredCategories:
                            - general
                          requirementIds:
                            - 5f2c939a52855e725c8d5826
                        deviceMonitoring:
                          required: true
                          preferredPasswordManagerId: ONEPASSWORD
                          installPrompt: INSTALL_VANTA_AGENT
                        custom:
                          required: true
                          requirements:
                            - id: 5f2c939a52855e725c8d5827
                              effectiveDate: null
                      offboarding:
                        accountDeactivation:
                          required: true
                          accounts:
                            deactivateAll: true
                        custom:
                          required: false
      security:
        - bearerAuth: []
components:
  schemas:
    CreateTaskRequirementSetInput:
      properties:
        name:
          type: string
          description: Display name for the set.
        description:
          type: string
          nullable: true
          description: Description of the set. Omit for none.
        isReusable:
          type: boolean
          description: >-
            Whether groups other than the one that owns this set may also apply
            it.
        onboarding:
          $ref: '#/components/schemas/OnboardingRequirementsInput'
          description: >-
            Onboarding requirements to apply. Omitted requirements default to
            not required.
        offboarding:
          $ref: '#/components/schemas/OffboardingRequirementsInput'
          description: >-
            Offboarding requirements to apply. Omitted requirements default to
            not required.
        groupId:
          type: string
          description: >-
            Group to assign the new set to. Replaces the group's current set; if
            that set was private to the group, it is deleted.
      required:
        - name
        - isReusable
        - groupId
      type: object
      additionalProperties: false
    TaskRequirementSet:
      properties:
        id:
          type: string
          description: The task requirement set's unique ID.
        name:
          type: string
          description: The task requirement set's display name.
        description:
          type: string
          nullable: true
          description: The task requirement set's description.
        isReusable:
          type: boolean
          description: >-
            Whether groups other than the one that owns this set may also apply
            it.
        createdAt:
          type: string
          format: date-time
          description: The date the set was created.
        updatedAt:
          type: string
          format: date-time
          description: The date the set was last updated.
        taskRequirements:
          $ref: '#/components/schemas/TaskRequirements'
          description: >-
            The onboarding and offboarding requirements the set applies to its
            personnel.
      required:
        - id
        - name
        - description
        - isReusable
        - createdAt
        - updatedAt
        - taskRequirements
      type: object
      additionalProperties: false
    OnboardingRequirementsInput:
      properties:
        policyAcceptance:
          $ref: '#/components/schemas/PolicyAcceptanceRequirement'
        backgroundCheck:
          $ref: '#/components/schemas/BackgroundCheckRequirement'
        securityTraining:
          $ref: '#/components/schemas/SecurityTrainingRequirementInput'
        deviceMonitoring:
          $ref: '#/components/schemas/DeviceMonitoringRequirement'
        custom:
          $ref: '#/components/schemas/CustomRequirements'
      type: object
      additionalProperties: false
    OffboardingRequirementsInput:
      properties:
        accountDeactivation:
          $ref: '#/components/schemas/AccountDeactivationRequirement'
        custom:
          $ref: '#/components/schemas/CustomRequirements'
      type: object
      additionalProperties: false
    TaskRequirements:
      properties:
        onboarding:
          $ref: '#/components/schemas/OnboardingRequirements'
        offboarding:
          $ref: '#/components/schemas/OffboardingRequirements'
      required:
        - onboarding
        - offboarding
      type: object
      additionalProperties: false
    PolicyAcceptanceRequirement:
      anyOf:
        - $ref: '#/components/schemas/RequirementNotApplied'
        - $ref: '#/components/schemas/AllPoliciesRequired'
        - $ref: '#/components/schemas/SelectedPoliciesRequired'
    BackgroundCheckRequirement:
      anyOf:
        - $ref: '#/components/schemas/RequirementNotApplied'
        - $ref: '#/components/schemas/BackgroundCheckRequired'
    SecurityTrainingRequirementInput:
      anyOf:
        - $ref: '#/components/schemas/RequirementNotApplied'
        - $ref: '#/components/schemas/SecurityTrainingRequiredInput'
      description: >-
        Security training is written as the trainings to require and read back
        as the

        categories and requirement records the server resolved them into.
    DeviceMonitoringRequirement:
      anyOf:
        - $ref: '#/components/schemas/RequirementNotApplied'
        - $ref: '#/components/schemas/DeviceMonitoringRequired'
    CustomRequirements:
      anyOf:
        - $ref: '#/components/schemas/RequirementNotApplied'
        - $ref: '#/components/schemas/CustomRequirementsRequired'
    AccountDeactivationRequirement:
      anyOf:
        - $ref: '#/components/schemas/RequirementNotApplied'
        - $ref: '#/components/schemas/AccountDeactivationRequired'
    OnboardingRequirements:
      properties:
        policyAcceptance:
          $ref: '#/components/schemas/PolicyAcceptanceRequirement'
        backgroundCheck:
          $ref: '#/components/schemas/BackgroundCheckRequirement'
        securityTraining:
          $ref: '#/components/schemas/SecurityTrainingRequirement'
        deviceMonitoring:
          $ref: '#/components/schemas/DeviceMonitoringRequirement'
        custom:
          $ref: '#/components/schemas/CustomRequirements'
      required:
        - policyAcceptance
        - backgroundCheck
        - securityTraining
        - deviceMonitoring
        - custom
      type: object
      additionalProperties: false
    OffboardingRequirements:
      properties:
        accountDeactivation:
          $ref: '#/components/schemas/AccountDeactivationRequirement'
        custom:
          $ref: '#/components/schemas/CustomRequirements'
      required:
        - accountDeactivation
        - custom
      type: object
      additionalProperties: false
    RequirementNotApplied:
      description: A requirement the set does not apply to the personnel it covers.
      properties:
        required:
          type: boolean
          enum:
            - false
          nullable: false
      required:
        - required
      type: object
      additionalProperties: false
    AllPoliciesRequired:
      properties:
        required:
          type: boolean
          enum:
            - true
          nullable: false
        acceptAll:
          type: boolean
          enum:
            - true
          nullable: false
      required:
        - required
        - acceptAll
      type: object
      additionalProperties: false
    SelectedPoliciesRequired:
      properties:
        required:
          type: boolean
          enum:
            - true
          nullable: false
        acceptAll:
          type: boolean
          enum:
            - false
          nullable: false
        policyTypes:
          items:
            type: string
          type: array
          description: Policy types personnel must accept.
      required:
        - required
        - acceptAll
        - policyTypes
      type: object
      additionalProperties: false
    BackgroundCheckRequired:
      properties:
        required:
          type: boolean
          enum:
            - true
          nullable: false
        cutoffDate:
          type: string
          format: date-time
          nullable: true
          description: >-
            Personnel hired after this date require a check. Null requires a
            check for everyone in scope.
      required:
        - required
        - cutoffDate
      type: object
      additionalProperties: false
    SecurityTrainingRequiredInput:
      properties:
        required:
          type: boolean
          enum:
            - true
          nullable: false
        trainings:
          items:
            $ref: '#/components/schemas/SecurityTrainingInput'
          type: array
          description: Replaces the set's trainings wholesale. At most one per category.
      required:
        - required
        - trainings
      type: object
      additionalProperties: false
    DeviceMonitoringRequired:
      properties:
        required:
          type: boolean
          enum:
            - true
          nullable: false
        preferredPasswordManagerId:
          allOf:
            - $ref: '#/components/schemas/PasswordManager'
          nullable: true
        installPrompt:
          $ref: '#/components/schemas/DeviceMonitoringInstallPrompt'
      required:
        - required
        - preferredPasswordManagerId
        - installPrompt
      type: object
      additionalProperties: false
    CustomRequirementsRequired:
      properties:
        required:
          type: boolean
          enum:
            - true
          nullable: false
        requirements:
          items:
            $ref: '#/components/schemas/CustomRequirementAssignment'
          type: array
      required:
        - required
        - requirements
      type: object
      additionalProperties: false
    AccountDeactivationRequired:
      properties:
        required:
          type: boolean
          enum:
            - true
          nullable: false
        accounts:
          $ref: '#/components/schemas/AccountSelection'
      required:
        - required
        - accounts
      type: object
      additionalProperties: false
    SecurityTrainingRequirement:
      anyOf:
        - $ref: '#/components/schemas/RequirementNotApplied'
        - $ref: '#/components/schemas/SecurityTrainingRequired'
    SecurityTrainingInput:
      anyOf:
        - $ref: '#/components/schemas/VantaSecurityTrainingInput'
        - $ref: '#/components/schemas/CustomSecurityTrainingInput'
        - $ref: '#/components/schemas/IntegrationSecurityTrainingInput'
    PasswordManager:
      type: string
      enum:
        - BITWARDEN
        - DASHLANE
        - ENPASS
        - KEEPER
        - LASTPASS
        - NORDPASS
        - ONEPASSWORD
        - PROTON
        - ROBOFORM
        - SAFEINCLOUD
        - TRENDMICRO
    DeviceMonitoringInstallPrompt:
      type: string
      enum:
        - INSTALL_VANTA_AGENT
        - NONE
    CustomRequirementAssignment:
      properties:
        id:
          type: string
        effectiveDate:
          type: string
          format: date-time
          nullable: true
          description: >-
            Applies to personnel whose employment start date is after this. Null
            applies to everyone.
      required:
        - id
        - effectiveDate
      type: object
      additionalProperties: false
    AccountSelection:
      anyOf:
        - $ref: '#/components/schemas/DeactivateAllAccounts'
        - $ref: '#/components/schemas/DeactivateSelectedAccounts'
    SecurityTrainingRequired:
      properties:
        required:
          type: boolean
          enum:
            - true
          nullable: false
        requiredCategories:
          items:
            $ref: '#/components/schemas/SecurityTrainingCategory'
          type: array
        requirementIds:
          items:
            type: string
          type: array
      required:
        - required
        - requiredCategories
        - requirementIds
      type: object
      additionalProperties: false
    VantaSecurityTrainingInput:
      description: A training supplied by Vanta.
      properties:
        type:
          type: string
          enum:
            - VANTA
          nullable: false
        category:
          $ref: '#/components/schemas/SecurityTrainingCategory'
        instructions:
          type: string
          nullable: true
          description: Completion instructions shown to personnel. Null uses Vanta's own.
        url:
          type: number
          enum:
            - null
          nullable: true
      required:
        - type
        - category
        - instructions
        - url
      type: object
      additionalProperties: false
    CustomSecurityTrainingInput:
      description: A training the organization hosts itself.
      properties:
        type:
          type: string
          enum:
            - CUSTOM
          nullable: false
        category:
          $ref: '#/components/schemas/SecurityTrainingCategory'
        instructions:
          type: string
          nullable: true
          description: Completion instructions shown to personnel.
        url:
          type: string
          nullable: true
          description: Where personnel complete the training.
      required:
        - type
        - category
        - instructions
        - url
      type: object
      additionalProperties: false
    IntegrationSecurityTrainingInput:
      description: A training completed in a connected integration
      properties:
        type:
          type: string
          enum:
            - INTEGRATION
          nullable: false
        category:
          $ref: '#/components/schemas/SecurityTrainingCategory'
        instructions:
          type: number
          enum:
            - null
          nullable: true
        url:
          type: number
          enum:
            - null
          nullable: true
      required:
        - type
        - category
        - instructions
        - url
      type: object
      additionalProperties: false
    DeactivateAllAccounts:
      properties:
        deactivateAll:
          type: boolean
          enum:
            - true
          nullable: false
      required:
        - deactivateAll
      type: object
      additionalProperties: false
    DeactivateSelectedAccounts:
      properties:
        deactivateAll:
          type: boolean
          enum:
            - false
          nullable: false
        accountIds:
          items:
            type: string
          type: array
      required:
        - deactivateAll
        - accountIds
      type: object
      additionalProperties: false
    SecurityTrainingCategory:
      type: string
      enum:
        - aiRisk
        - c5
        - ccpa
        - gdpr
        - general
        - hipaa
        - insiderThreat
        - pci
        - secureCode
        - socialEngineering
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

## Related topics

- [Update task requirement set requirements](https://developer.vanta.com/api-reference/task-requirement-sets/update-task-requirement-set-requirements.md)
- [List task requirement sets](https://developer.vanta.com/api-reference/task-requirement-sets/list-task-requirement-sets.md)
- [Update task requirement set details](https://developer.vanta.com/api-reference/task-requirement-sets/update-task-requirement-set-details.md)
- [Get task requirement set by ID](https://developer.vanta.com/api-reference/task-requirement-sets/get-task-requirement-set-by-id.md)
- [Get group task requirement set](https://developer.vanta.com/api-reference/groups/get-group-task-requirement-set.md)
