> For the complete documentation index, see [llms.txt](https://cortex-docs.paloaltonetworks.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-docs.paloaltonetworks.com/xsiam-api/cortex-platform/biocs.md).

# BIOCs

APIs for managing BIOCs

## Get BIOCs

> Return a list of BIOCs. You can return all BIOCs or filter results. You can also return extended results with all details included.- The response is concatenated using AND condition (OR is not supported).> \
> \- The maximum result set size is >100.> \
> \- Offset is the zero-based number of incidents from the start of the result set.> \\
>
> \
> You must have \*\*Rules Edit\*\* permissions to run this endpoint. <br>

```json
{"openapi":"3.0.0","info":{"title":"Cortex XSIAM Platform APIs","version":"Cortex XSIAM 3.6"},"tags":[{"name":"BIOCs","description":"APIs for managing BIOCs"}],"servers":[{"url":"https://api-yourfqdn"}],"paths":{"/public_api/v1/bioc/get":{"post":{"tags":["BIOCs"],"summary":"Get BIOCs","description":"Return a list of BIOCs. You can return all BIOCs or filter results. You can also return extended results with all details included.- The response is concatenated using AND condition (OR is not supported).\r\n- The maximum result set size is >100.\r\n- Offset is the zero-based number of incidents from the start of the result set.\r\n\r\nYou must have **Rules Edit** permissions to run this endpoint.\r\n","parameters":[{"schema":{"type":"string"},"in":"header","name":"Authorization","description":"{api_key}","required":true},{"schema":{"type":"string"},"in":"header","name":"x-xdr-auth-id","description":"{api_key_id}","required":true}],"operationId":"post-public_api-v1-bioc-get","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["request_data"],"properties":{"request_data":{"type":"object","properties":{"extended_view":{"type":"boolean"},"filters":{"type":"array","description":"An array of filter fields.","items":{"type":"object","properties":{"field":{"enum":["name","severity","type","is_xql","comment","status","indicator","mitre_technique_id_and_name","mitre_tactic_id_and_name"],"description":"Identifies the BIOC field the filter is matching. Filters are based on the following keywords:\r\n- `name`: BIOC name.\r\n- `severity`: BIOC severity level.\r\n- `type`: BIOC type.\r\n- `is_xql`: Whether or not the BIOC is XQL.\r\n- `comment`: Comment.\r\n- `status`: BIOC status.\r\n- `indicator`: Indicator.\r\n- `mitre_technique_id_and_name`: MITRE technique ID and name.\r\n- `mitre_tactic_id_and_name`: MITRE tactic ID and name."},"operator":{"enum":["EQ","NEQ","IN","GTE","LTE"],"description":"Identifies the comparison operator you want to use for this filter. Valid keywords are:\r\n`EQ` / `NEQ`\r\n- `name`: String\r\n- `severity`: String\r\n- `type`: String\r\n- `is_xql`: Boolean\r\n- `comment`: String\r\n- `status`: String\r\n- `indicator`: String\r\n`IN`\r\n- `mitre_technique_id_and_name`: List of strings\r\n- `mitre_tactic_id_and_name`: List of strings"},"value":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"boolean"}],"description":"Value that this filter must match. The contents of this field will differ depending on the IOC field that you specified for this filter:\r\n- `name`, `comment`: String.\r\n- `severity`: String, can be one of the following: `SEV_010_INFO`, `SEV_020_LOW`, `SEV_030_MEDIUM`, `SEV_040_HIGH`\r\n- `type`: String, can be one of the following: `other`, `persistence`, `evasion`, `tampering`, `file_type_obfuscation`, `privilege_escalation`, `credential_access`, `lateral_movement`, `execution`, `collection`, `exfiltration`, `infiltration`, `dropper`, `file_privilege_manipulation`, `reconnaissance`, `discovery`.\r\n- `is_xql`: Boolean: `true` or `false`.\r\n- `status`: String, can be one of the following: `enabled`, `disabled`.\r\n- `indicator`: String or dictionary in the format you wrote it.\r\n- `mitre_technique_id_and_name`: List of strings.\r\n- `mitre_tactic_id_and_name`: List of strings.","items":{}}}}},"search_from":{"type":"integer","description":"Integer representing the starting offset within the query result set from which you want BIOCs returned.\r\nBIOCs are returned as a zero-based list. Any BIOC indexed less than this value is not returned in the final result set and defaults to zero."},"search_to":{"type":"integer","description":"Integer representing the end offset within the result set after which you do not want BIOCs returned.\r\nBIOCs in the BIOC list that are indexed higher than this value are not returned in the final results set. Defaults to >100, which returns all BIOCs to the end of the list."}}}}}}},"required":false},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"objects_count":{"type":"integer"},"objects":{"type":"array","items":{"type":"object","properties":{"rule_id":{"type":"integer"},"name":{"type":"string"},"type":{"type":"string"},"severity":{"type":"string"},"comment":{"type":"string"},"status":{"type":"string"},"is_xql":{"type":"boolean"},"indicator":{"type":"object","properties":{"runOnCGO":{"type":"boolean"},"investigationType":{"type":"string"},"investigation":{"type":"object","properties":{"PROCESS_EXECUTION_EVENT":{"type":"object","properties":{"filter":{"type":"object","properties":{"AND":{"type":"array","items":{"type":"object","properties":{"SEARCH_FIELD":{"type":"string"},"SEARCH_TYPE":{"type":"string"},"SEARCH_VALUE":{"type":"string"},"EXTRA_FIELDS":{"type":"array","items":{"type":"object","properties":{}}},"isExtended":{"type":"boolean"}}}}}}}}}}}},"mitre_tactic_id_and_name":{"type":"array","items":{"type":"string"}},"mitre_technique_id_and_name":{"type":"array","items":{"type":"string"}}}}},"objects_type":{"type":"string"}}}}}},"400":{"description":"Bad Request. Got invalid JSON.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"401":{"description":"Unauthorized access. An issue occurred during authentication. This can indicate an incorrect key, id, or other invalid authentication parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"402":{"description":"Unauthorized access. User does not have the required license type to run this API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"403":{"description":"Forbidden access. The provided API Key does not have the required RBAC permissions to run this API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"500":{"description":"Internal server error. A unified status for API communication type errors.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}}}}}},"components":{"schemas":{"reply":{"type":"object","title":"reply","description":"The query result upon error.","properties":{"err_code":{"type":"string","description":"HTTP response code."},"err_msg":{"type":"string","description":"Error message."},"err_extra":{"type":"string","description":"Additional information describing the error."}}}}}}
```

## Insert or update BIOCs

> Insert new BIOCs or update existing BIOCs.\
> \
> \*\*Note:\*\* The BIOC \`rule\_id\` is tenant specific and can't be used across tenants. Inserting BIOCs with the same \`rule\_id\` as an existing BIOC on that tenant will overwrite the existing BIOC.\
> \
> Requires the granular RBAC permission for this feature.

```json
{"openapi":"3.0.0","info":{"title":"Cortex XSIAM Platform APIs","version":"Cortex XSIAM 3.6"},"tags":[{"name":"BIOCs","description":"APIs for managing BIOCs"}],"servers":[{"url":"https://api-yourfqdn"}],"paths":{"/public_api/v1/bioc/insert":{"post":{"tags":["BIOCs"],"summary":"Insert or update BIOCs","description":"Insert new BIOCs or update existing BIOCs.\n\n**Note:** The BIOC `rule_id` is tenant specific and can't be used across tenants. Inserting BIOCs with the same `rule_id` as an existing BIOC on that tenant will overwrite the existing BIOC.\n\nRequires the granular RBAC permission for this feature.","parameters":[{"schema":{"type":"string"},"in":"header","name":"Authorization","description":"{api_key}","required":true},{"schema":{"type":"string"},"in":"header","name":"x-xdr-auth-id","description":"{api_key_id}","required":true}],"operationId":"post-public_api-v1-bioc-insert","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["request_data"],"properties":{"request_data":{"type":"array","items":{"type":"object","properties":{"rule_id":{"type":"integer"},"name":{"type":"string","description":"BIOC name."},"type":{"enum":["OTHER","PERSISTENCE","EVASION","TAMPERING","FILE_TYPE_OBFUSCATION","PRIVILEGE_ESCALATION","CREDENTIAL_ACCESS","LATERAL_MOVEMENT","EXECUTION","COLLECTION","EXFILTRATION","INFILTRATION","DROPPER","FILE_PRIVILEGE_MANIPULATION","RECONNAISSANCE","DISCOVERY"],"description":"BIOC type."},"severity":{"enum":["SEV_010_INFO","SEV_020_LOW","SEV_030_MEDIUM","SEV_040_HIGH"],"description":"BIOC severity."},"comment":{"type":"string"},"status":{"enum":["enabled","disabled"],"description":"BIOC status."},"is_xql":{"type":"boolean"},"indicator":{"type":"object","additionalProperties":{}},"mitre_tactic_id_and_name":{"type":"array","items":{"type":"string"}},"mitre_technique_id_and_name":{"type":"array","items":{"type":"string"}}}}}}}}},"required":false},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"added_objects":{"type":"array","description":"List of BIOC objects added.","items":{"type":"object","properties":{"id":{"type":"integer"},"status":{"type":"string"}}}},"updated_objects":{"type":"array","description":"List of BIOC objects updated.","items":{"type":"object","properties":{"id":{"type":"integer"},"status":{"type":"string"}}}},"errors":{"type":"array","description":"A list of errors.","items":{"type":"string"}}}}}}},"400":{"description":"Bad Request. Got invalid JSON.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"401":{"description":"Unauthorized access. An issue occurred during authentication. This can indicate an incorrect key, id, or other invalid authentication parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"402":{"description":"Unauthorized access. User does not have the required license type to run this API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"403":{"description":"Forbidden access. The provided API Key does not have the required RBAC permissions to run this API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"500":{"description":"Internal server error. A unified status for API communication type errors.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}}}}}},"components":{"schemas":{"reply":{"type":"object","title":"reply","description":"The query result upon error.","properties":{"err_code":{"type":"string","description":"HTTP response code."},"err_msg":{"type":"string","description":"Error message."},"err_extra":{"type":"string","description":"Additional information describing the error."}}}}}}
```

## Delete BIOCs

> Delete BIOCs selected by filter.\
> \
> Requires the granular RBAC permission for this feature.

```json
{"openapi":"3.0.0","info":{"title":"Cortex XSIAM Platform APIs","version":"Cortex XSIAM 3.6"},"tags":[{"name":"BIOCs","description":"APIs for managing BIOCs"}],"servers":[{"url":"https://api-yourfqdn"}],"paths":{"/public_api/v1/bioc/delete":{"post":{"tags":["BIOCs"],"summary":"Delete BIOCs","operationId":"post-public_api-v1-bioc-delete","parameters":[{"schema":{"type":"string"},"in":"header","name":"Authorization","description":"{api_key}","required":true},{"schema":{"type":"string"},"in":"header","name":"x-xdr-auth-id","description":"{api_key_id}","required":true}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["request_data"],"properties":{"request_data":{"type":"object","properties":{"filters":{"type":"array","description":"An array of filter fields.","items":{"type":"object","properties":{"field":{"type":"string","enum":["name","severity","type","is_xql","comment","status","indicator","mitre_technique_id_and_name","mitre_tactic_id_and_name"],"description":"Identifies the BIOC field the filter is matching. Filters are based on the following keywords:\r\n- `name`: BIOC name.\r\n- `severity`: BIOC severity level.\r\n- `type`: BIOC type.\r\n- `is_xql`: Whether or not the BIOC is XQL.\r\n- `comment`: Comment.\r\n- `status`: BIOC status.\r\n- `indicator`: Indicator.\r\n- `mitre_technique_id_and_name`: MITRE technique ID and name.\r\n- `mitre_tactic_id_and_name`: MITRE tactic ID and name."},"operator":{"type":"string","enum":["EQ","NEQ","IN","GTE","LTE"],"description":"Identifies the comparison operator you want to use for this filter. Valid keywords are:\r\n`EQ` / `NEQ`\r\n- `name`: String\r\n- `severity`: String\r\n- `type`: String\r\n- `is_xql`: Boolean\r\n- `comment`: String\r\n- `status`: String\r\n- `indicator`: String\r\n`IN`\r\n- `mitre_technique_id_and_name`: List of strings\r\n- `mitre_tactic_id_and_name`: List of strings"},"value":{"oneOf":[{"type":"boolean"},{"type":"string"},{"type":"array","items":{"type":"string"}}],"description":"Value that this filter must match. The contents of this field will differ depending on the IOC field that you specified for this filter:\r\n- `name`, `comment`: String.\r\n- `severity`: String, can be one of the following: `SEV_010_INFO`, `SEV_020_LOW`, `SEV_030_MEDIUM`, `SEV_040_HIGH`\r\n- `type`: String, can be one of the following: `other`, `persistence`, `evasion`, `tampering`, `file_type_obfuscation`, `privilege_escalation`, `credential_access`, `lateral_movement`, `execution`, `collection`, `exfiltration`, `infiltration`, `dropper`, `file_privilege_manipulation`, `reconnaissance`, `discovery`.\r\n- `is_xql`: Boolean: `true` or `false`.\r\n- `status`: String, can be one of the following: `enabled`, `disabled`.\r\n- `indicator`: String or dictionary in the format you wrote it.\r\n- `mitre_technique_id_and_name`: List of strings.\r\n- `mitre_tactic_id_and_name`: List of strings.","items":{}}}}}}}}}}},"required":false},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"objects_count":{"type":"integer","description":"Number of BIOC objects deleted."},"objects":{"type":"array","items":{"type":"integer"}}}}}}},"400":{"description":"Bad Request. Got invalid JSON.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"401":{"description":"Unauthorized access. An issue occurred during authentication. This can indicate an incorrect key, id, or other invalid authentication parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"402":{"description":"Unauthorized access. User does not have the required license type to run this API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"403":{"description":"Forbidden access. The provided API Key does not have the required RBAC permissions to run this API.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}},"500":{"description":"Internal server error. A unified status for API communication type errors.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/reply"}}}}},"description":"Delete BIOCs selected by filter.\n\nRequires the granular RBAC permission for this feature."}}},"components":{"schemas":{"reply":{"type":"object","title":"reply","description":"The query result upon error.","properties":{"err_code":{"type":"string","description":"HTTP response code."},"err_msg":{"type":"string","description":"Error message."},"err_extra":{"type":"string","description":"Additional information describing the error."}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://cortex-docs.paloaltonetworks.com/xsiam-api/cortex-platform/biocs.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
