# Modules

## GET /api/v2/modules

> Read Modules

```json
{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/api/v2/modules":{"get":{"tags":["modules"],"summary":"Read Modules","operationId":"read_modules_api_v2_modules_get","parameters":[{"name":"hide_disabled","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Hide Disabled"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"BadRequestResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"NotFoundResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## GET /api/v2/modules/{uid}

> Read Module

```json
{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/api/v2/modules/{uid}":{"get":{"tags":["modules"],"summary":"Read Module","operationId":"read_module_api_v2_modules__uid__get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Module"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Module":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"authors":{"items":{"$ref":"#/components/schemas/Author"},"type":"array","title":"Authors"},"description":{"type":"string","title":"Description"},"background":{"type":"boolean","title":"Background"},"language":{"$ref":"#/components/schemas/LanguageEnum"},"min_language_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Language Version"},"needs_admin":{"type":"boolean","title":"Needs Admin"},"opsec_safe":{"type":"boolean","title":"Opsec Safe"},"techniques":{"items":{"type":"string"},"type":"array","title":"Techniques"},"tactics":{"items":{"type":"string"},"type":"array","title":"Tactics"},"software":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Software"},"comments":{"items":{"type":"string"},"type":"array","title":"Comments"},"options":{"additionalProperties":{"$ref":"#/components/schemas/CustomOptionSchema"},"type":"object","title":"Options"}},"type":"object","required":["id","name","enabled","authors","description","background","language","needs_admin","opsec_safe","techniques","tactics","comments","options"],"title":"Module"},"Author":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"handle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Handle"},"link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link"}},"type":"object","title":"Author"},"LanguageEnum":{"type":"string","enum":["python","powershell","csharp","ironpython","bof"],"title":"LanguageEnum"},"CustomOptionSchema":{"properties":{"description":{"type":"string","title":"Description"},"required":{"type":"boolean","title":"Required"},"value":{"type":"string","title":"Value"},"suggested_values":{"items":{"type":"string"},"type":"array","title":"Suggested Values"},"strict":{"type":"boolean","title":"Strict"},"editable":{"type":"boolean","title":"Editable","default":true},"value_type":{"$ref":"#/components/schemas/ValueType"},"internal":{"type":"boolean","title":"Internal"},"depends_on":{"items":{"$ref":"#/components/schemas/DependentOption"},"type":"array","title":"Depends On","default":[]}},"type":"object","required":["description","required","value","suggested_values","strict","value_type","internal"],"title":"CustomOptionSchema"},"ValueType":{"type":"string","enum":["STRING","FLOAT","INTEGER","BOOLEAN","FILE"],"title":"ValueType"},"DependentOption":{"properties":{"name":{"type":"string","title":"Name"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values"}},"type":"object","required":["name","values"],"title":"DependentOption"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"BadRequestResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"NotFoundResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## PUT /api/v2/modules/{uid}

> Update Module

```json
{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/api/v2/modules/{uid}":{"put":{"tags":["modules"],"summary":"Update Module","operationId":"update_module_api_v2_modules__uid__put","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Module"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ModuleUpdateRequest":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["enabled"],"title":"ModuleUpdateRequest"},"Module":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"enabled":{"type":"boolean","title":"Enabled"},"authors":{"items":{"$ref":"#/components/schemas/Author"},"type":"array","title":"Authors"},"description":{"type":"string","title":"Description"},"background":{"type":"boolean","title":"Background"},"language":{"$ref":"#/components/schemas/LanguageEnum"},"min_language_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Language Version"},"needs_admin":{"type":"boolean","title":"Needs Admin"},"opsec_safe":{"type":"boolean","title":"Opsec Safe"},"techniques":{"items":{"type":"string"},"type":"array","title":"Techniques"},"tactics":{"items":{"type":"string"},"type":"array","title":"Tactics"},"software":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Software"},"comments":{"items":{"type":"string"},"type":"array","title":"Comments"},"options":{"additionalProperties":{"$ref":"#/components/schemas/CustomOptionSchema"},"type":"object","title":"Options"}},"type":"object","required":["id","name","enabled","authors","description","background","language","needs_admin","opsec_safe","techniques","tactics","comments","options"],"title":"Module"},"Author":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"handle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Handle"},"link":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link"}},"type":"object","title":"Author"},"LanguageEnum":{"type":"string","enum":["python","powershell","csharp","ironpython","bof"],"title":"LanguageEnum"},"CustomOptionSchema":{"properties":{"description":{"type":"string","title":"Description"},"required":{"type":"boolean","title":"Required"},"value":{"type":"string","title":"Value"},"suggested_values":{"items":{"type":"string"},"type":"array","title":"Suggested Values"},"strict":{"type":"boolean","title":"Strict"},"editable":{"type":"boolean","title":"Editable","default":true},"value_type":{"$ref":"#/components/schemas/ValueType"},"internal":{"type":"boolean","title":"Internal"},"depends_on":{"items":{"$ref":"#/components/schemas/DependentOption"},"type":"array","title":"Depends On","default":[]}},"type":"object","required":["description","required","value","suggested_values","strict","value_type","internal"],"title":"CustomOptionSchema"},"ValueType":{"type":"string","enum":["STRING","FLOAT","INTEGER","BOOLEAN","FILE"],"title":"ValueType"},"DependentOption":{"properties":{"name":{"type":"string","title":"Name"},"values":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Values"}},"type":"object","required":["name","values"],"title":"DependentOption"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"BadRequestResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"NotFoundResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## GET /api/v2/modules/{uid}/script

> Read Module Script

```json
{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/api/v2/modules/{uid}/script":{"get":{"tags":["modules"],"summary":"Read Module Script","operationId":"read_module_script_api_v2_modules__uid__script_get","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","title":"Uid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleScript"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ModuleScript":{"properties":{"module_id":{"type":"string","title":"Module Id"},"script":{"type":"string","title":"Script"}},"type":"object","required":["module_id","script"],"title":"ModuleScript"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"BadRequestResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"NotFoundResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## PUT /api/v2/modules/bulk/enable

> Update Bulk Enable

```json
{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/api/v2/modules/bulk/enable":{"put":{"tags":["modules"],"summary":"Update Bulk Enable","operationId":"update_bulk_enable_api_v2_modules_bulk_enable_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleBulkUpdateRequest"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ModuleBulkUpdateRequest":{"properties":{"modules":{"items":{"type":"string"},"type":"array","title":"Modules"},"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["modules","enabled"],"title":"ModuleBulkUpdateRequest"},"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"BadRequestResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"NotFoundResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}
```

## POST /api/v2/modules/reload

> Reload Modules

```json
{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/api/v2/modules/reload":{"post":{"tags":["modules"],"summary":"Reload Modules","operationId":"reload_modules_api_v2_modules_reload_post","responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}}}}},"components":{"schemas":{"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"BadRequestResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"NotFoundResponse"}}}}
```

## POST /api/v2/modules/reset

> Reset Modules

```json
{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/api/v2/modules/reset":{"post":{"tags":["modules"],"summary":"Reset Modules","operationId":"reset_modules_api_v2_modules_reset_post","responses":{"204":{"description":"Successful Response"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundResponse"}}}}}}}},"components":{"schemas":{"BadRequestResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"BadRequestResponse"},"NotFoundResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"NotFoundResponse"}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bc-security.gitbook.io/empire-wiki/restful-api/modules.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
