# Fetches control by control mongo ID If including the optional checklist items and reconciliations, the provided API key must have the Checklists and Reconciliations scopes respectively. Endpoint: GET /api/v1/controls/{id} Version: 1.0.0 Security: x-api-key ## Path parameters: - `id` (string, required) The internal unique identifier for the control Example: "61d325c84a9f97631731a690" ## Query parameters: - `include` (array) Optional properties in a comma separated string that should be included on each control document Enum: "owners", "assignees", "signatures", "documents", "checklistItems", "reconciliations", "reviewNotes", "customFields", "frequency", "attributes", "lockedPeriods" ## Response 200 fields (application/json): - `data` (object) - `data.id` (string) Example: "61d325c84a9f97631731a690" - `data.controlId` (string) The client identifier for this control Example: "FQ.001" - `data.processId` (string) Example: "61d325c84a9f97631731a690" - `data.title` (string) The title of the control - `data.description` (string) The description of the control - `data.project` (object) - `data.project.name` (string) The name of the compliance project this control is in Example: "2024 Compliance Project" - `data.project.periods` (array) The months and years covered by the compliance project that this control is attached to - `data.project.periods.month` (string) Enum: "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december" - `data.project.periods.year` (string) four-digit year Example: "2020" - `data.owners` (array) Information about the users that own this control - `data.owners.type` (string) Enum: "primary", "secondary" - `data.owners.isGuest` (boolean) - `data.owners.ownerId` (string) Example: "61d325c84a9f97631731a690" - `data.assignees` (array) Information about the sign-off frequency for this control - `data.assignees.dueDateOffsetDays` (number) - `data.assignees.dueDateType` (string) - `data.assignees.frequency` (number) - `data.assignees.frequencyMonths` (array) - `data.assignees.group` (string) Enum: "reviewer", "preparer" - `data.assignees.assigneeId` (string) Example: "61d325c84a9f97631731a690" - `data.signatures` (array) Information about the sign-offs that have been completed for this control - `data.signatures.assignedTo` (string) Example: "61d325c84a9f97631731a690" - `data.signatures.createdAt` (string) ISO 8601 timestamp when the signature was created Example: "2025-01-15T10:30:45.123Z" - `data.signatures.period` (object) - `data.signatures.signedBy` (string) Example: "61d325c84a9f97631731a690" - `data.signatures.signedDate` (string) ISO 8601 timestamp when the control was signed Example: "2025-01-15T10:30:45.123Z" - `data.signatures.updatedAt` (string) ISO 8601 timestamp when the signature was last updated Example: "2025-01-15T10:30:45.123Z" - `data.documents` (array) Information about the evidence documents attached to this control - `data.documents.fileName` (string) - `data.documents.uploadedDate` (string) ISO 8601 timestamp when the document was uploaded Example: "2025-01-15T10:30:45.123Z" - `data.documents.userId` (string) Example: "61d325c84a9f97631731a690" - `data.checklistItems` (array) - `data.checklistItems._id` (string) Example: "61d325c84a9f97631731a690" - `data.checklistItems.company` (object) - `data.checklistItems.company.name` (string) Example: "FloQast US" - `data.checklistItems.company.yearEnd` (string) Example: "12/31" - `data.checklistItems.controls` (array) Array of values. Example: ["FQ-123","AR-1000"] - `data.checklistItems.description` (string) - `data.checklistItems.reviewNotes` (array) - `data.checklistItems.reviewNotes.assigned` (array) Array of user IDs that are assigned to the review note. Example: ["61d325c84a9f97631731a690"] - `data.checklistItems.reviewNotes.attachedTo` (object) - `data.checklistItems.reviewNotes.attachedTo.folder` (string) Example: "61d325c84a9f97631731a690" - `data.checklistItems.reviewNotes.attachedTo.procedure` (string) Example: "61d325c84a9f97631731a690" - `data.checklistItems.reviewNotes.author` (string) Example: "61d325c84a9f97631731a690" - `data.checklistItems.reviewNotes.comments` (array) - `data.checklistItems.reviewNotes.message` (string) Text content of the review note. - `data.checklistItems.reviewNotes.status` (string) Enum: "closed", "resolved", "unresolved" - `data.checklistItems.docs` (object) - `data.checklistItems.docs.addedBy` (string) Example: "61d325c84a9f97631731a690" - `data.checklistItems.docs.addedDate` (string) ISO 8601 timestamp when the document was added Example: "2025-01-15T10:30:45.123Z" - `data.checklistItems.docs.name` (string) Name of document. Example: "very-important-document.docx" - `data.checklistItems.docs.storageMetadataId` (string) Example: "61d325c84a9f97631731a690" - `data.checklistItems.createdAt` (string) ISO 8601 timestamp when the checklist was created Example: "2025-01-15T10:30:45.123Z" - `data.checklistItems.updatedAt` (string) ISO 8601 timestamp when the checklist was last updated Example: "2025-01-15T10:30:45.123Z" - `data.reconciliations` (array) - `data.reconciliations.number` (string) - `data.reconciliations.identifier` (string) - `data.reconciliations.displayName` (string) - `data.reconciliations.createdAt` (string) ISO 8601 timestamp when the reconciliation was created Example: "2025-01-15T10:30:45.123Z" - `data.reconciliations.updatedAt` (string) ISO 8601 timestamp when the reconciliation was last updated Example: "2025-01-15T10:30:45.123Z" - `data.attributes` (object) - `data.attributes.isKeyControl` (boolean) - `data.attributes.isManual` (boolean) - `data.attributes.assertions` (array,null) Enum: "existence-or-occurrence", "completeness", "valuation-or-allocation", "rights-and-obligation", "presentation-and-disclosure" - `data.lockedPeriods` (object) Example: {"march-2024":{"lockedAt":"2024-01-15T10:30:45.123Z","lockedBy":"507f1f77bcf86cd799439011","lockedUsingApiKey":"61d325c84a9f97631731a690"},"may-2024":{"lockedAt":"2024-02-15T10:30:45.123Z","lockedBy":"507f1f77bcf86cd799439011","lockedUsingApiKey":"61d325c84a9f97631731a690"}} - `data.isArchived` (boolean) - `data.createdAt` (string) ISO 8601 timestamp when the control was created Example: "2025-01-15T10:30:45.123Z" - `data.updatedAt` (string) ISO 8601 timestamp when the control was last updated Example: "2025-01-15T10:30:45.123Z" ## Response 400 fields (application/json): - `message` (string) Reason for the errors related to incorrect query keys or values that are out of bound Example: "filter[month] is required" - `name` (string) BadRequest Example: "BadRequest" - `status` (integer) The HTTP status code. Example: 400 ## Response 401 fields (application/json): - `message` (string) Reason for the unauthorized error. Example: "Token is invalid." - `name` (string) Unauthorized Example: "Unauthorized" - `status` (integer) The HTTP status code. Example: 401 ## Response 403 fields (application/json): - `message` (string) Reason for the forbidden error. Example: "User does not have permission to access requested project." - `name` (string) Forbidden Example: "Forbidden" - `status` (integer) The HTTP status code. Example: 403 ## Response 404 fields (application/json): - `message` (string) Description of the missing resource or reason for the 404 error. Example: "Resource not found." - `name` (string) NotFound Example: "NotFound" - `status` (integer) The HTTP status code. Example: 404 ## Response 413 fields (application/json): - `message` (string) Response size is greater than 1MB Example: "Payload too large." - `name` (string) PayloadTooLarge Example: "PayloadTooLarge" - `status` (integer) The HTTP status code. Example: 413 ## Response 500 fields (application/json): - `message` (string) Reason for the internal server error. Example: "An unexpected error occurred." - `name` (string) InternalServerError Example: "InternalServerError" - `status` (integer) The HTTP status code. Example: 500