{
  "service": "drata",
  "displayName": "Drata",
  "categories": [
    "Security",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "drata_api_key",
      "description": "Drata API key used with the Authorization Bearer header. Create or view API keys in Drata as documented at https://help.drata.com/en/articles/6695964.",
      "extraFields": [
        {
          "key": "region",
          "label": "Region",
          "inputType": "text",
          "required": false,
          "secret": false,
          "placeholder": "us",
          "description": "The Drata public API region for your account: us, eu, or apac. Leave blank for the default US API host documented by Drata."
        }
      ]
    }
  ],
  "homepageUrl": "https://drata.com",
  "actions": [
    {
      "id": "drata.get_company",
      "service": "drata",
      "name": "get_company",
      "description": "Get company metadata for the connected Drata account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for getting Drata company metadata."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "object",
            "properties": {
              "accountId": {
                "type": "string",
                "description": "The Drata account ID for the company."
              },
              "domain": {
                "type": "string",
                "description": "The company's domain."
              },
              "name": {
                "type": "string",
                "description": "The company's common name."
              },
              "legalName": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The company's full legal name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The company description."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "logoUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The company avatar URL."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "type": "string",
                "description": "The account creation timestamp."
              },
              "updatedAt": {
                "type": "string",
                "description": "The account update timestamp."
              }
            },
            "additionalProperties": true,
            "description": "The Drata company metadata for the connected account."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting Drata company metadata."
      }
    },
    {
      "id": "drata.get_control",
      "service": "drata",
      "name": "get_control",
      "description": "Get one Drata control by ID or code-prefixed identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "integer",
            "description": "The Drata workspace ID."
          },
          "controlId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The integer Drata control ID."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "A control code prefixed with code:, such as code:DCF-37."
              }
            ],
            "description": "The control ID or a code-prefixed identifier."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata cursor returned in pagination.cursor by a previous list response."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "The number of results to return."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata field name to sort by."
          },
          "sortDir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The direction to sort returned data."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Drata expand value."
            },
            "description": "Related Drata subcollections and sub-objects to expand."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaceId",
          "controlId"
        ],
        "description": "The input payload for getting a Drata control."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "control": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata object returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting a Drata control."
      }
    },
    {
      "id": "drata.get_personnel",
      "service": "drata",
      "name": "get_personnel",
      "description": "Get one Drata personnel record by ID or email-prefixed identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "personnelId": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The integer Drata personnel ID."
              },
              {
                "type": "string",
                "minLength": 1,
                "description": "An email-prefixed identifier such as email:user@example.com."
              }
            ],
            "description": "The personnel ID or an email-prefixed identifier."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Drata expand value."
            },
            "description": "Related Drata subcollections and sub-objects to expand."
          }
        },
        "additionalProperties": false,
        "required": [
          "personnelId"
        ],
        "description": "The input payload for getting Drata personnel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "personnel": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata object returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting Drata personnel."
      }
    },
    {
      "id": "drata.get_vendor",
      "service": "drata",
      "name": "get_vendor",
      "description": "Get one Drata vendor by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "vendorId": {
            "type": "integer",
            "description": "The Drata vendor ID."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Drata expand value."
            },
            "description": "Related Drata subcollections and sub-objects to expand."
          }
        },
        "additionalProperties": false,
        "required": [
          "vendorId"
        ],
        "description": "The input payload for getting a Drata vendor."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "vendor": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata object returned by the API."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting a Drata vendor."
      }
    },
    {
      "id": "drata.list_controls",
      "service": "drata",
      "name": "list_controls",
      "description": "List controls in a Drata workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "integer",
            "description": "The Drata workspace ID."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata cursor returned in pagination.cursor by a previous list response."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "The number of results to return."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata field name to sort by."
          },
          "sortDir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The direction to sort returned data."
          },
          "includeTotalCount": {
            "type": "boolean",
            "description": "Whether Drata should include totalCount on the first page of results."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Drata expand value."
            },
            "description": "Related Drata subcollections and sub-objects to expand."
          },
          "isMonitored": {
            "type": "boolean",
            "description": "Whether to filter controls by monitor presence."
          },
          "isReady": {
            "type": "boolean",
            "description": "Whether to filter controls by readiness."
          },
          "hasEvidence": {
            "type": "boolean",
            "description": "Whether to filter controls by evidence presence."
          },
          "hasPolicy": {
            "type": "boolean",
            "description": "Whether to filter controls by policy presence."
          },
          "hasPassingTest": {
            "type": "boolean",
            "description": "Whether to filter controls with at least one passing test."
          },
          "ticketStatus": {
            "type": "string",
            "minLength": 1,
            "description": "The task management ticket status to filter controls by."
          },
          "policyId": {
            "type": "integer",
            "description": "The policy ID to filter controls by."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Whether to filter controls by enabled status."
          },
          "isArchived": {
            "type": "boolean",
            "description": "Whether to filter controls by archived status."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaceId"
        ],
        "description": "The input payload for listing Drata controls."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Drata object returned by the API."
            },
            "description": "The Drata records returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to pass to the next list request, when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total count returned when includeTotalCount is used."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Drata cursor pagination metadata."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata list response returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Drata controls."
      }
    },
    {
      "id": "drata.list_personnel",
      "service": "drata",
      "name": "list_personnel",
      "description": "List Drata personnel visible to the current API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata cursor returned in pagination.cursor by a previous list response."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "The number of results to return."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata field name to sort by."
          },
          "sortDir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The direction to sort returned data."
          },
          "includeTotalCount": {
            "type": "boolean",
            "description": "Whether Drata should include totalCount on the first page of results."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Drata expand value."
            },
            "description": "Related Drata subcollections and sub-objects to expand."
          },
          "employmentStatus": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Drata employment status."
            },
            "description": "Employment statuses to filter personnel by."
          },
          "complianceStatus": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Drata compliance status."
            },
            "description": "Overall compliance statuses to filter personnel by."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Drata personnel."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Drata object returned by the API."
            },
            "description": "The Drata records returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to pass to the next list request, when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total count returned when includeTotalCount is used."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Drata cursor pagination metadata."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata list response returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Drata personnel."
      }
    },
    {
      "id": "drata.list_vendors",
      "service": "drata",
      "name": "list_vendors",
      "description": "List vendors in Drata.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata cursor returned in pagination.cursor by a previous list response."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "The number of results to return."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata field name to sort by."
          },
          "sortDir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The direction to sort returned data."
          },
          "includeTotalCount": {
            "type": "boolean",
            "description": "Whether Drata should include totalCount on the first page of results."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Drata expand value."
            },
            "description": "Related Drata subcollections and sub-objects to expand."
          },
          "category": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata vendor category to filter by."
          },
          "impactLevel": {
            "type": "string",
            "minLength": 1,
            "description": "The overall vendor impact level to filter by."
          },
          "renewalDate": {
            "type": "string",
            "description": "The vendor renewal date to filter by.",
            "format": "date"
          },
          "renewalScheduleType": {
            "type": "string",
            "minLength": 1,
            "description": "The vendor renewal schedule type to filter by."
          },
          "risk": {
            "type": "string",
            "minLength": 1,
            "description": "The vendor risk level to filter by."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "The vendor status to filter by."
          },
          "type": {
            "type": "string",
            "minLength": 1,
            "description": "The vendor type to filter by."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Drata vendors."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Drata object returned by the API."
            },
            "description": "The Drata records returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to pass to the next list request, when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total count returned when includeTotalCount is used."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Drata cursor pagination metadata."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata list response returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Drata vendors."
      }
    },
    {
      "id": "drata.list_workspaces",
      "service": "drata",
      "name": "list_workspaces",
      "description": "List Drata workspaces visible to the current API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata cursor returned in pagination.cursor by a previous list response."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "The number of results to return."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "The Drata field name to sort by."
          },
          "sortDir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The direction to sort returned data."
          },
          "includeTotalCount": {
            "type": "boolean",
            "description": "Whether Drata should include totalCount on the first page of results."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One Drata expand value."
            },
            "description": "Related Drata subcollections and sub-objects to expand."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Drata workspaces."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Drata object returned by the API."
            },
            "description": "The Drata records returned for the current page."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to pass to the next list request, when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "totalCount": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total count returned when includeTotalCount is used."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "Drata cursor pagination metadata."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Drata list response returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Drata workspaces."
      }
    }
  ]
}
