{"openapi":"3.1.0","info":{"title":"Drata (BYOK) API","version":"0.1.0","description":"Drata (BYOK) lets an AI assistant read your own Drata data through the Drata API with a key you supply (Drata API key). Read-only: 10 tools (get_company_info, list_workspaces, list_workspace_frameworks, list_controls, list_monitors, list_policies, list_vendors, get_vendor_stats, list_events, list_connections). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-drata.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-drata/docs"},"termsOfService":"https://connectorbay.com/byok-drata/terms"},"servers":[{"url":"https://byok-drata.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-drata/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_company_info":{"post":{"operationId":"get_company_info","summary":"Show your Drata account's company profile: name, domain, legal name, security contact, privacy and terms URLs and worksp","description":"Show your Drata account's company profile: name, domain, legal name, security contact, privacy and terms URLs and workspaces. Use for \"What company profile is set up in Drata\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_company_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_workspaces":{"post":{"operationId":"list_workspaces","summary":"List the Drata workspaces (products) in the account with their enabled frameworks. Use for \"Which Drata workspaces do we","description":"List the Drata workspaces (products) in the account with their enabled frameworks. Use for \"Which Drata workspaces do we have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search workspace names for.","title":"Q"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 50).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_workspacesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_workspace_frameworks":{"post":{"operationId":"list_workspace_frameworks","summary":"List the compliance frameworks (SOC 2, ISO 27001, HIPAA and others) enabled in a workspace with the number of in-scope c","description":"List the compliance frameworks (SOC 2, ISO 27001, HIPAA and others) enabled in a workspace with the number of in-scope controls and ready requirements. Use for \"Which compliance frameworks are enabled in my Drata workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Drata workspace ID (a number from list_workspaces).","minimum":1,"title":"Id","type":"integer"},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True (default) for enabled frameworks only, false for the others.","title":"Is Enabled"},"is_ready":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to show only frameworks that are ready.","title":"Is Ready"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search framework names for.","title":"Q"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 50).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["id"],"title":"list_workspace_frameworksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_controls":{"post":{"operationId":"list_controls","summary":"List compliance controls with code, name, whether they have an owner, evidence, monitoring and are ready, and their fram","description":"List compliance controls with code, name, whether they have an owner, evidence, monitoring and are ready, and their framework tags. Use for \"Which Drata controls are not ready or have no owner\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text matched against control names, codes and descriptions.","title":"Q"},"workspace_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only controls of this workspace ID.","title":"Workspace Id"},"is_ready":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for controls that are ready, false for those that are not.","title":"Is Ready"},"is_owned":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for controls with an owner, false for those without.","title":"Is Owned"},"has_evidence":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for controls with evidence, false for those without.","title":"Has Evidence"},"is_monitored":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for monitored controls, false for the others.","title":"Is Monitored"},"has_passing_test":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for controls with at least one passing test.","title":"Has Passing Test"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 50).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_controlsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_monitors":{"post":{"operationId":"list_monitors","summary":"List automated monitoring tests with their latest result (passed, failed, error), last check time and status. Use for \"W","description":"List automated monitoring tests with their latest result (passed, failed, error), last check time and status. Use for \"Which Drata monitoring tests are failing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"check_result_status":{"anyOf":[{"enum":["READY","PASSED","FAILED","ERROR","PREAUDIT"],"type":"string"},{"type":"null"}],"default":null,"description":"Result filter: READY, PASSED, FAILED, ERROR or PREAUDIT.","title":"Check Result Status"},"check_status":{"anyOf":[{"enum":["UNUSED","NEW","ENABLED","DISABLED","TESTING"],"type":"string"},{"type":"null"}],"default":null,"description":"Test state: UNUSED, NEW, ENABLED, DISABLED or TESTING.","title":"Check Status"},"type":{"anyOf":[{"enum":["POLICY","IN_DRATA","AGENT","INFRASTRUCTURE","VERSION_CONTROL","IDENTITY","TICKETING","HRIS","OBSERVABILITY","CUSTOM"],"type":"string"},{"type":"null"}],"default":null,"description":"Check type: POLICY, IN_DRATA, AGENT, INFRASTRUCTURE, VERSION_CONTROL, IDENTITY, TICKETING, HRIS, OBSERVABILITY or CUSTOM.","title":"Type"},"control_id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only tests linked to this control ID.","title":"Control Id"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text matched against test names.","title":"Q"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 50).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_monitorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_policies":{"post":{"operationId":"list_policies","summary":"List policies with name, version, status, approval, publication and renewal dates. Use for \"Which policies are published","description":"List policies with name, version, status, approval, publication and renewal dates. Use for \"Which policies are published and when do they renew\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search policy names for.","title":"Q"},"has_published_version":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for policies that have a published version.","title":"Has Published Version"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 50).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_policiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_vendors":{"post":{"operationId":"list_vendors","summary":"List third-party vendors with category, risk level, type, criticality, whether they hold PII, status and renewal date. U","description":"List third-party vendors with category, risk level, type, criticality, whether they hold PII, status and renewal date. Use for \"Which critical vendors do we track and what is their risk level\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search vendor names for.","title":"Q"},"critical":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for critical vendors only.","title":"Critical"},"is_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for archived vendors, false for active ones.","title":"Is Archived"},"sort":{"anyOf":[{"enum":["CATEGORY","NAME","POLICY","RISK","USER","TYPE","STATUS","IMPACT_LEVEL"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by CATEGORY, NAME, POLICY, RISK, USER, TYPE, STATUS or IMPACT_LEVEL (default NAME).","title":"Sort"},"sort_dir":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction ASC or DESC.","title":"Sort Dir"},"renewal_date_status":{"anyOf":[{"enum":["NO_RENEWAL","COMPLETED","RENEWAL_DUE_SOON","RENEWAL_DUE"],"type":"string"},{"type":"null"}],"default":null,"description":"Renewal state: NO_RENEWAL, COMPLETED, RENEWAL_DUE_SOON or RENEWAL_DUE.","title":"Renewal Date Status"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 50).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_vendorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_vendor_stats":{"post":{"operationId":"get_vendor_stats","summary":"Get counts of vendors grouped by risk, status, type, criticality, PII handling and impact level. Use for \"How many vendo","description":"Get counts of vendors grouped by risk, status, type, criticality, PII handling and impact level. Use for \"How many vendors do we have by risk level\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_vendor_statsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_events":{"post":{"operationId":"list_events","summary":"List recent activity events (monitor results, policy changes, vendor and connection events) with type, category, source,","description":"List recent activity events (monitor results, policy changes, vendor and connection events) with type, category, source, status and time. Use for \"What compliance events happened in Drata recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Event category such as MONITOR, POLICY, VENDOR, CONNECTION, AUDIT or COMPANY.","title":"Category"},"source":{"anyOf":[{"enum":["APP","AUTOPILOT","PUBLIC_API","VENDOR_QUESTIONNAIRE","SCHEDULED","WORKFLOW","DRATA_POLICY","AUDIT_AGENT"],"type":"string"},{"type":"null"}],"default":null,"description":"Event source: APP, AUTOPILOT, PUBLIC_API, VENDOR_QUESTIONNAIRE, SCHEDULED, WORKFLOW, DRATA_POLICY or AUDIT_AGENT.","title":"Source"},"status":{"anyOf":[{"enum":["READY","PASSED","FAILED","ERROR","PREAUDIT"],"type":"string"},{"type":"null"}],"default":null,"description":"Result status: READY, PASSED, FAILED, ERROR or PREAUDIT.","title":"Status"},"sort_dir":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction ASC or DESC (default DESC, newest first).","title":"Sort Dir"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 50).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_connections":{"post":{"operationId":"list_connections","summary":"List the integrations connected to Drata with provider, state, connection time and alias. Use for \"Which integrations ar","description":"List the integrations connected to Drata with provider, state, connection time and alias. Use for \"Which integrations are connected to Drata and are any misconfigured\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"enum":["ACTIVE","MISCONFIGURED","CONFIGURED_PENDING_CONFIRMATION","IN_PROGRESS"],"type":"string"},{"type":"null"}],"default":null,"description":"Connection state: ACTIVE, MISCONFIGURED, CONFIGURED_PENDING_CONFIRMATION or IN_PROGRESS.","title":"State"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 50).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_connectionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}