# Controls

Create, lock, sign, and deactivate controls.

## Fetches a list of controls with optional filters

 - [GET /api/v1/controls](https://developer.floqast.app/api-reference/openapi/controls/getbulkcontrolsroute.md)

## Inserts new controls up to 20 at a time

 - [POST /api/v1/controls](https://developer.floqast.app/api-reference/openapi/controls/createbulkcontrolsroute.md)

## Fetches control by control mongo ID

 - [GET /api/v1/controls/{id}](https://developer.floqast.app/api-reference/openapi/controls/getsinglecontrolroute.md): If including the optional checklist items and reconciliations, the provided API key must have the Checklists and Reconciliations scopes respectively.

## Updates a control by control mongo ID

 - [PATCH /api/v1/controls/{id}](https://developer.floqast.app/api-reference/openapi/controls/patchsinglecontrolroute.md)

## Deletes an inactive control by control mongo ID

 - [DELETE /api/v1/controls/{id}](https://developer.floqast.app/api-reference/openapi/controls/deletesinglecontrolroute.md)

## Updates a control signature's sign-off status

 - [PATCH /api/v1/controls/{id}/sign/{signatureId}](https://developer.floqast.app/api-reference/openapi/controls/signoffcontrolroute.md)

## Fetches a signed URL for uploading evidence to a control.

 - [GET /api/v1/controls/{id}/upload-url/{period}](https://developer.floqast.app/api-reference/openapi/controls/getuploadurlroute.md): The file key returned from this endpoint should be used in the POST /controls/{id}/documents endpoint to associate the uploaded file with the control.

## Upload a document to a control.

 - [POST /api/v1/controls/{id}/documents](https://developer.floqast.app/api-reference/openapi/controls/postdocumentsroute.md): Uploads a file to the user's storage provider from S3 after the user has uploaded 
the file to S3 using the presigned URL from GET /controls/{id}/upload-url/{period}.
The file will be associated with the specified control and period.

## Lock or unlock a control period

 - [PATCH /api/v1/controls/{id}/lock/{period}](https://developer.floqast.app/api-reference/openapi/controls/lockorunlockcontrolperiodroute.md): Locks or unlocks a specific period of a control. When locked, the control period 
cannot be modified. This endpoint also locks associated review notes and files 
(except for Egnyte storage).

## Deactivates one control and unlinks associated risks, tests, and FSLIs/scoping sheets

 - [PUT /api/v1/controls/{id}/deactivate](https://developer.floqast.app/api-reference/openapi/controls/putdeactivatecontrolroute.md)

## Reactivate one control and link associated tests

 - [PUT /api/v1/controls/{id}/reactivate](https://developer.floqast.app/api-reference/openapi/controls/putreactivatecontrolroute.md)

