> ## 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 custom requirement

> Creates a custom onboarding or offboarding requirement.



## OpenAPI

````yaml /reference/manage-vanta.json post /task-requirement-sets/custom-requirements
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/custom-requirements:
    post:
      tags:
        - Task Requirement Sets
      summary: Create custom requirement
      description: Creates a custom onboarding or offboarding requirement.
      operationId: CreateCustomRequirement
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomRequirementInput'
      responses:
        '201':
          description: Custom requirement created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomRequirement'
              examples:
                Example 1:
                  value:
                    id: 5f2c939a52855e725c8d5827
                    title: Sign the acceptable use policy
                    requirementType: ONBOARDING
                    ownerType: EMPLOYEE
                    textInputLabel: null
                    fileInputLabel: Signed policy
                    instructions: Download, sign, and upload the acceptable use policy.
                    createdAt: '2024-03-07T18:46:05.944Z'
                    updatedAt: '2024-03-07T18:46:05.944Z'
      security:
        - bearerAuth: []
components:
  schemas:
    CreateCustomRequirementInput:
      anyOf:
        - $ref: '#/components/schemas/CreateCustomOffboardingRequirementInput'
        - $ref: '#/components/schemas/CreateCustomOnboardingRequirementInput'
    CustomRequirement:
      properties:
        id:
          type: string
          description: The custom requirement's unique ID.
        title:
          type: string
          description: The custom requirement's display title.
        requirementType:
          $ref: '#/components/schemas/CustomRequirementType'
          description: Whether the requirement applies during onboarding or offboarding.
        ownerType:
          $ref: '#/components/schemas/CustomRequirementOwnerType'
          description: >-
            Who completes the requirement. Offboarding requirements are always
            completed by an admin.
        textInputLabel:
          type: string
          nullable: true
          description: Label for the requirement's text input, or null if it has none.
        fileInputLabel:
          type: string
          nullable: true
          description: Label for the requirement's file input, or null if it has none.
        instructions:
          type: string
          nullable: true
          description: Instructions for completing the requirement, or null if it has none.
        createdAt:
          type: string
          format: date-time
          description: The date the requirement was created.
        updatedAt:
          type: string
          format: date-time
          description: The date the requirement was last updated.
      required:
        - id
        - title
        - requirementType
        - ownerType
        - textInputLabel
        - fileInputLabel
        - instructions
        - createdAt
        - updatedAt
      type: object
      additionalProperties: false
    CreateCustomOffboardingRequirementInput:
      properties:
        requirementType:
          type: string
          enum:
            - OFFBOARDING
          nullable: false
        title:
          type: string
          description: Display title for the requirement.
        instructions:
          type: string
          nullable: true
          description: Instructions for completing the requirement. Omit for none.
      required:
        - requirementType
        - title
      type: object
      additionalProperties: false
    CreateCustomOnboardingRequirementInput:
      properties:
        requirementType:
          type: string
          enum:
            - ONBOARDING
          nullable: false
        title:
          type: string
          description: Display title for the requirement.
        instructions:
          type: string
          nullable: true
          description: Instructions for completing the requirement. Omit for none.
        ownerType:
          $ref: '#/components/schemas/CustomRequirementOwnerType'
          description: Who completes the requirement.
        textInputLabel:
          type: string
          nullable: true
          description: Label for the requirement's text input. Omit for none.
        fileInputLabel:
          type: string
          nullable: true
          description: Label for the requirement's file input. Omit for none.
      required:
        - requirementType
        - title
        - ownerType
      type: object
      additionalProperties: false
    CustomRequirementType:
      type: string
      enum:
        - ONBOARDING
        - OFFBOARDING
    CustomRequirementOwnerType:
      type: string
      enum:
        - ADMIN
        - EMPLOYEE
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

## Related topics

- [Create task requirement set](https://developer.vanta.com/api-reference/task-requirement-sets/create-task-requirement-set.md)
- [Update custom requirement](https://developer.vanta.com/api-reference/task-requirement-sets/update-custom-requirement.md)
- [List custom requirements](https://developer.vanta.com/api-reference/task-requirement-sets/list-custom-requirements.md)
- [Create custom control](https://developer.vanta.com/api-reference/controls/create-custom-control.md)
- [Create a custom document](https://developer.vanta.com/api-reference/documents/create-a-custom-document.md)
