{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":557,"path":"api-reference/rest-apis/tisc-api.md","title":"TISC API","bundle":null,"doc_type":null,"release":"australia","body":"\n# TISC API\n\nThe TISC API provides endpoints to add and retrieve threat intelligence data in the Threat Intelligence Security Center \\(TISC\\) application.\n\nData retrieved by this API can be used by other security tools such as Security Information Event Management \\(SIEM\\) systems. SIEM systems can integrate with TISC using this API to retrieve observables related to threats in TISC and automatically detect and monitor these threats within an organization’s network. This API enables bidirectional sharing of observables from security tools. SIEM systems observe anomalous activity in the environment and can provide a list of observables associated with the anomalous activity to TISC.\n\nThis API can also be used to enrich SIEM alerts with threat intelligence context. For example, if a SIEM alert is generated based on unusually high traffic from an IP address, TISC can provide additional information such as whether the IP address or domain involved is linked to known malicious activities. This enrichment data enables security analysts to triage the alerts and use the contextual information for efficient remediation.\n\nThis API requires the Threat Intelligence Security Center application, which is available on the ServiceNow Store.\n\nFor additional information about TISC, see [Threat Intelligence Security Center](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/security-management/tisc-landing-page.md).\n\nThis API runs in the `sn_sec_tisc` namespace.\n\nThe current version of this API is `v1`.\n\nFor information about API authentication, see the REST API security section in [REST APIs](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n**Parent Topic:**[REST API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-apis/api-rest.md)\n\n## TISC API - POST /sn\\_sec\\_tisc/threat\\_intel\\_data/add\\_observables\n\nAdds observable source records to the Threat Intelligence Security Center \\(TISC\\) application.\n\nThe [observable source records](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/security-management/tisc-observables-source-records.md) are created in the Observable Source \\[sn\\_sec\\_tisc\\_observable\\_source\\] table and are processed through de-duplication and aggregation in the [TISC data flow](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/security-management/tisc-data-processing-functional-flow.md).\n\n**Note:** Observable source records can't be directly updated using this endpoint. Only new records can be created. Therefore, even if only a few fields require an update, all fields must still be included in the request.\n\nTo access this endpoint, the caller must have the sn\\_sec\\_tisc.api\\_obs\\_write\\_access role, which by default is included in the Threat Intelligence administrator role \\(sn\\_sec\\_tisc.admin\\).\n\n### URL format\n\nVersioned URL: `/api/sn_sec_tisc/{api_version}/threat_intel_data/add_observables`\n\nDefault URL: `/api/sn_sec_tisc/threat_intel_data/add_observables`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n<table class=\"rest_api_request_body\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nobservables\n\n</td><td>\n\nRequired. List of observable objects to add to TISC. For each observable object, an observable source record is created if all validations are passed, with the source as defined by the **source** parameter in the request body.Data type: Array of Objects\n\n```\n\"observables\": [\n   {\n      \"attributes\": {Object},\n      \"<field>\": \"String\"\n   }\n]\n```\n\n</td></tr><tr><td>\n\nobservables.attributes\n\n</td><td>\n\nField-value pairs containing attribute data about the observable. Attributes are specific to an observable type, such as the AS number for an IP address or the socket type for a network. All attributes for all observable types are supported. For a complete list of valid attributes, see the Observable attributes section below.\n\nData type: Object\n\n```\n\"attributes\": {\n   \"<field>\": \"<value>\"\n}\n```\n\n</td></tr><tr><td>\n\nobservables.&lt;field&gt;\n\n</td><td>\n\nName-value pairs containing general data about the observable. The fields that can be provided in this parameter are common to all observable types.The **type** and **value** fields are required for all observables.\n\n**Note:** Follow these guidelines for providing values:\n\n-   All dates must be in ISO format in the UTC timezone.\n-   Some fields require values from a specified table or have a list of possible values. If invalid values are provided for these fields, the observable source record is still created but the invalid values are skipped.\n\nValid fields:\n\n-   **additional\\_context**\n\nAdditional context about the observable.\n\n-   **attack\\_phases**\n\nList of attack phase names as a comma separated value. For a complete list of valid attack phases, see the **Kill Chain Phase Name** field in the Kill Chain Phase \\[sn\\_sec\\_tisc\\_kill\\_chain\\_phase\\] table.\n\nFor example:\n\n    ```\n\"attack_phases\": \"Lockheed Martin: Reconnaissance,Lockheed Martin: Installation\"\n    ```\n\n-   **author**\n\nAuthor for the observable.\n\n-   **confidence**\n\nThe confidence that the source system has in the correctness of the observable data. Must be a number from 0–100.\n\n-   **description**\n\nDescription of the observable.\n\n-   **expiration\\_time**\n\nExpiration date of the observable record.\n\n-   **external\\_source\\_id**\n\nExternal ID of the observable from the source system.\n\n-   **first\\_observed**\n\nDate the data was first seen.\n\n-   **first\\_seen**\n\nDate this observable was first seen performing malicious activities.\n\n-   **last\\_observed**\n\nDate the data was last seen.\n\n-   **last\\_seen**\n\nDate this observable was last seen performing malicious activities.\n\n-   **notes**\n\nAny additional notes for the observable. Can be formatted as HTML.\n\n-   **reputation**\n\nReputation of the observable.\n\nPossible values:\n\n    -   clear\n    -   malicious\n    -   suspicious\n    -   unknown\n-   **source\\_reported\\_score**\n\nMaliciousness score of the observable reported by the source system. Must be a number from 0–100.\n\n-   **tags**\n\nList of tags as a comma-separated value. For a complete list of valid tags, see the **Name** field in the Tag \\[sn\\_sec\\_tisc\\_tag\\] table. If the provided tag doesn’t exist, the tag is automatically created and associated with the observable.\n\n-   **taxonomies**\n\nList of taxonomies as a comma-separated value. For a complete list of valid taxonomies, see the **Taxonomy Value** field in the Taxonomy Value \\[sn\\_sec\\_tisc\\_taxonomy\\_value\\] table.\n\n-   **threat\\_level**\n\nThreat level of the observable.\n\nPossible values:\n\n    -   low\n    -   medium\n    -   high\n-   **threat\\_severity**\n\nThreat severity of the observable.\n\nPossible values:\n\n    -   low\n    -   medium\n    -   high\n    -   critical\n-   **tlp**\n\nData sensitivity level for the observable using the traffic light protocol \\(TLP\\).\n\nPossible values:\n\n    -   CLEAR\n    -   GREEN\n    -   AMBER\n    -   AMBER+STRICT\n    -   RED\nTable: In the Label field in the TLP Label \\[sn\\_sec\\_tisc\\_tlp\\_label\\] table.\n\n-   **type**\n\nRequired. Type of observable.\n\nFor a complete list of valid observable types, see the **Value** field in the Observable Type \\[sn\\_sec\\_tisc\\_observable\\_type\\] table, or the Observable attributes section below.\n\n-   **usage\\_categories**\n\nList of usage categories as a comma-separated value. For a complete list of valid usage categories, see the **Usage Category** field in the Usage Category \\[sn\\_sec\\_tisc\\_usage\\_category\\] table.\n\n-   **value**\n\nRequired. Value associated with the observable, such as an IP address or URL.\n\n\nData type: String\n\nTable: Observable Source \\[sn\\_sec\\_tisc\\_observable\\_source\\]\n\n</td></tr><tr><td>\n\nsource\n\n</td><td>\n\nRequired. Source that originally detected the observables, such as a SIEM system.The source is used for all observables listed in the API request.\n\nData type: String\n\nStored in: Sources provided in the request body are added to the API Integration \\[sn\\_sec\\_tisc\\_api\\_integration\\] table.\n\n</td></tr></tbody>\n</table>### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|Accept|Data format of the response body. Only supports **application/json**.|\n|Content-Type|Data format of the request body. Only supports **application/json**.|\n\n|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table id=\"table_gcj_124_xbc\"><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n200\n\n</td><td id=\"entry-200-status-code\">\n\nSuccessful. The request was successfully processed.\n\n</td></tr><tr><td>\n\n400\n\n</td><td>\n\nBad request. The request parameters are invalid or the request body JSON has a syntactical error.To view details about the error, see the **error** parameter in the response body.\n\n</td></tr><tr><td>\n\n401\n\n</td><td>\n\nUnauthorized. The user authentication is invalid. Check the user name and password or OAuth token.\n\n</td></tr><tr><td>\n\n403\n\n</td><td>\n\nForbidden. The calling user is missing a required role. The sn\\_sec\\_tisc.api\\_obs\\_write\\_access role is required to access this endpoint.\n\n</td></tr><tr><td>\n\n429\n\n</td><td>\n\nToo many requests. The number of API requests exceeds the rate limit for the API. By default, the limit is 100 requests per hour.\n\n</td></tr><tr><td>\n\n500\n\n</td><td>\n\nInternal server error. Check application logs in the Log \\[syslog\\] table for more information about the error.\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nerror\n\n</td><td>\n\nError information. This parameter is only returned if the request failed.Data type: Object\n\n```\n\"error\": {\n   \"message\": \"String\",\n   \"detail\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nerror.message\n\n</td><td>\n\nError message containing the reason the request failed.Data type: String\n\n</td></tr><tr><td>\n\nerror.detail\n\n</td><td>\n\nAdditional details about why the request failed.Data type: String\n\n</td></tr><tr><td>\n\nerror\\_records\n\n</td><td>\n\nDetails about the observables included in the request that couldn't be added to TISC.Data type: Array of Objects\n\n```\n\"error_records\": [\n  {\n    \"error_message\": \"String\",\n    \"type\": \"String\",\n    \"value\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nerror\\_records.error\\_message\n\n</td><td>\n\nError message that explains why a record couldn't be created for the observable.Data type: String\n\n</td></tr><tr><td>\n\nerror\\_records.type\n\n</td><td>\n\nType of observable.For a complete list of valid observable types, see the **Value** field in the Observable Type \\[sn\\_sec\\_tisc\\_observable\\_type\\] table, or the Observable attributes section below.\n\nData type: String\n\n</td></tr><tr><td>\n\nerror\\_records.value\n\n</td><td>\n\nValue associated with the observable, such as an IP address or URL.Data type: String\n\n</td></tr><tr><td>\n\nmetadata\n\n</td><td>\n\nMetadata about the number of records created by the API request. ```\n\"metadata\": {\n  \"error_records\": Number,\n  \"success_records\": Number,\n  \"total_records\": Number\n}\n```\n\nData type: Object\n\n</td></tr><tr><td>\n\nmetadata.error\\_records\n\n</td><td>\n\nNumber of observables included in the request that couldn't be added to TISC.Data type: Number\n\n</td></tr><tr><td>\n\nmetadata.success\\_records\n\n</td><td>\n\nNumber of observable records that were successfully created in TISC.Data type: Number\n\n</td></tr><tr><td>\n\nmetadata.total\\_records\n\n</td><td>\n\nTotal number of observables included in the request.Data type: Number\n\n</td></tr><tr><td>\n\nstatus\n\n</td><td>\n\nStatus of the API request.Possible values:\n\n-   `error`: No observables successfully added to TISC.\n-   `failure`: The request failed due to a bad request or system error. See the **error** parameter in the response body for more information about the error.\n-   `partial_success`: Some observables successfully added to TISC.\n-   `success`: All observables successfully added to TISC.\n\nData type: String\n\n</td></tr><tr><td>\n\nsuccess\\_records\n\n</td><td>\n\nDetails about the observable records that were successfully created.Data type: Array of Objects\n\n```\n\"success_records\": [\n  {\n    \"sys_id\": \"String\",\n    \"type\": \"String\",\n    \"value\": \"String\"\n  }\n]\n```\n\n</td></tr><tr><td>\n\nsuccess\\_records.sys\\_id\n\n</td><td>\n\nSys\\_id of the observable record.Data type: String\n\n</td></tr><tr><td>\n\nsuccess\\_records.type\n\n</td><td>\n\nType of observable. For a complete list of valid observable types, see the **Value** field in the Observable Type \\[sn\\_sec\\_tisc\\_observable\\_type\\] table, or the Observable attributes section below.\n\nData type: String\n\n</td></tr><tr><td>\n\nsuccess\\_records.value\n\n</td><td>\n\nValue associated with the observable, such as an IP address or URL.Data type: String\n\n</td></tr></tbody>\n</table>### Observable attributes\n\nThe following table lists valid attributes for each observable type.\n\n**Note:** All dates must be in ISO format in the UTC timezone.\n\n<table id=\"table_tfq_rbn_zbc\"><thead><tr><th>\n\nObservable type\n\n</th><th>\n\nAttributes\n\n</th><th>\n\nData type\n\n</th></tr></thead><tbody><tr><td rowspan=\"8\">\n\nartifact\n\n</td><td>\n\ndecryption\\_key\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nencryption\\_algorithm\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmd5\\_hash\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmime\\_type\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsha1\\_hash\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsha256\\_hash\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsha512\\_hash\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nurl\n\n</td><td>\n\nString\n\n</td></tr><tr><td rowspan=\"2\">\n\nautonomous\\_system\\_number\n\n</td><td>\n\nname\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nrir\n\n</td><td>\n\nString\n\n</td></tr><tr><td rowspan=\"4\">\n\ndirectory\n\n</td><td>\n\ndirectory\\_creation\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\ndirectory\\_last\\_accessed\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\ndirectory\\_last\\_modified\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nencoded\\_path\n\n</td><td>\n\nString\n\n</td></tr><tr><td rowspan=\"2\">\n\ndomain\\_name\n\n</td><td>\n\nis\\_fqdn\\(Fully qualified domain name\\)\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nresolves\\_to\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nemail\\_address\n\n</td><td>\n\ndisplay\\_name\n\n</td><td>\n\nString\n\n</td></tr><tr><td rowspan=\"7\">\n\nemail\\_message\n\n</td><td>\n\nemail\\_body\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nemail\\_recipients\\_bcc\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nemail\\_recipients\\_cc\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nemail\\_recipients\\_to\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nemail\\_sender\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nemail\\_subject\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsent\\_date\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nemail\\_subject\n\n</td><td>\n\nNone\n\n</td><td>\n\n \n\n</td></tr><tr><td rowspan=\"11\">\n\nfile\n\n</td><td>\n\nencoded\\_file\\_name\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nfile\\_created\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nfile\\_last\\_accessed\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nfile\\_last\\_modified\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nfile\\_name\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmagic\\_number\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmd5\\_hash\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmime\\_type\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsha1\\_hash\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsha256\\_hash\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsha512\\_hash\n\n</td><td>\n\nString\n\n</td></tr><tr><td rowspan=\"2\">\n\nip\\_v4\\_address\n\n</td><td>\n\nas\\_number\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmac\\_address\n\n</td><td>\n\nString\n\n</td></tr><tr><td rowspan=\"2\">\n\nip\\_v4\\_cidr\n\n</td><td>\n\nas\\_number\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmac\\_address\n\n</td><td>\n\nString\n\n</td></tr><tr><td rowspan=\"2\">\n\nip\\_v6\\_address\n\n</td><td>\n\nas\\_number\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmac\\_address\n\n</td><td>\n\nString\n\n</td></tr><tr><td rowspan=\"2\">\n\nip\\_v6\\_cidr\n\n</td><td>\n\nas\\_number\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmac\\_address\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nmac\\_address\n\n</td><td>\n\nNone\n\n</td><td>\n\n \n\n</td></tr><tr><td>\n\nmd5\\_hash\n\n</td><td>\n\nNone\n\n</td><td>\n\n \n\n</td></tr><tr><td>\n\nmutex\\_name\n\n</td><td>\n\nNone\n\n</td><td>\n\n \n\n</td></tr><tr><td rowspan=\"28\">\n\nnetwork\n\n</td><td>\n\ndestination\\_bytes\\_count\n\n</td><td>\n\nInteger\n\n</td></tr><tr><td>\n\ndestination\\_packets\\_count\n\n</td><td>\n\nInteger\n\n</td></tr><tr><td>\n\ndestination\\_port\n\n</td><td>\n\n \n\n</td></tr><tr><td>\n\nend\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nhttp\\_message\\_body\\_length\n\n</td><td>\n\nInteger\n\n</td></tr><tr><td>\n\nhttp\\_request\\_header\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nhttp\\_request\\_method\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nhttp\\_request\\_value\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nhttp\\_request\\_version\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nnetwork\\_source\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nnetwork\\_destination\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nicmp\\_code\\_byte\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nicmp\\_type\\_byte\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nis\\_network\\_active\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nis\\_socket\\_blocking\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nis\\_socket\\_listening\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nnetwork\\_protocols\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsocket\\_address\\_family\n\n</td><td>\n\nStringPossible values:\n\n-   af\\_unspec\n-   af\\_inet\n-   af\\_ipx\n-   af\\_appletalk\n-   af\\_netbios\n-   af\\_inet6\n-   af\\_irda\n-   af\\_bth\n\n</td></tr><tr><td>\n\nsocket\\_descriptor\n\n</td><td>\n\nInteger\n\n</td></tr><tr><td>\n\nsocket\\_handle\n\n</td><td>\n\nInteger\n\n</td></tr><tr><td>\n\nsocket\\_options\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsocket\\_type\n\n</td><td>\n\nStringPossible values:\n\n-   service\\_kernel\\_driver\n-   service\\_file\\_system\\_driver\n-   service\\_win32\\_own\\_process\n-   service\\_win32\\_share\\_process\n\n</td></tr><tr><td>\n\nsource\\_bytes\\_count\n\n</td><td>\n\nInteger\n\n</td></tr><tr><td>\n\nsource\\_packets\\_count\n\n</td><td>\n\nInteger\n\n</td></tr><tr><td>\n\nsource\\_port\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nstart\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\ntcp\\_destination\\_flags\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\ntcp\\_source\\_flags\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nother\n\n</td><td>\n\nNone\n\n</td><td>\n\n \n\n</td></tr><tr><td rowspan=\"20\">\n\nprocess\n\n</td><td>\n\naslr\\_enabled\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\ncommand\\_line\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\ncwd\\(Current Working Directory\\)\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\ndep\\_enabled\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nenvironment\\_variables\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nis\\_hidden\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nowner\\_sid\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\npid\\(Process ID\\)\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\npriority\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nprocess\\_created\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nservice\\_descriptions\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nservice\\_display\\_name\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nservice\\_group\\_name\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nservice\\_name\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nservice\\_start\\_type\n\n</td><td>\n\nStringPossible values:\n\n-   service\\_auto\\_start\n-   service\\_boot\\_start\n-   service\\_demand\\_start\n-   service\\_disabled\n-   service\\_system\\_alert\n\n</td></tr><tr><td>\n\nservice\\_status\n\n</td><td>\n\nStringPossible values:\n\n-   service\\_continue\\_pending\n-   service\\_pause\\_pending\n-   service\\_paused\n-   service\\_running\n-   service\\_start\\_pending\n-   service\\_stop\\_pending\n-   service\\_stopped\n\n</td></tr><tr><td>\n\nservice\\_type\n\n</td><td>\n\nStringPossible values:\n\n-   service\\_kernel\\_driver\n-   service\\_file\\_system\\_driver\n-   service\\_win32\\_own\\_process\n-   service\\_win32\\_share\\_process\n\n</td></tr><tr><td>\n\nstartup\\_info\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nwindows\\_integrity\\_level\n\n</td><td>\n\nStringPossible values:\n\n-   low\n-   medium\n-   high\n-   system\n\n</td></tr><tr><td>\n\nwindow\\_title\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsha1\\_hash\n\n</td><td>\n\nNone\n\n</td><td>\n\n \n\n</td></tr><tr><td>\n\nsha256\\_hash\n\n</td><td>\n\nNone\n\n</td><td>\n\n \n\n</td></tr><tr><td>\n\nsha512\\_hash\n\n</td><td>\n\nNone\n\n</td><td>\n\n \n\n</td></tr><tr><td rowspan=\"5\">\n\nsoftware\n\n</td><td>\n\ncpe\\(Common Platform Enumeration\\)\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsupported\\_languages\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nswid\\(Software Identification\\)\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nvendor\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nversion\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nurl\n\n</td><td>\n\nNone\n\n</td><td>\n\n \n\n</td></tr><tr><td rowspan=\"13\">\n\nuser\\_account\n\n</td><td>\n\naccount\\_created\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\naccount\\_expiry\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\naccount\\_type\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\ncan\\_escalate\\_privileges\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\ncredentials\\_last\\_changed\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\ndisplay\\_name\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nfirst\\_login\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nis\\_account\\_disabled\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nis\\_privileged\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nis\\_service\\_account\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nlast\\_login\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\naccount\\_login\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nuser\\_id\n\n</td><td>\n\nString\n\n</td></tr><tr><td rowspan=\"3\">\n\nwindows\\_registry\\_key\n\n</td><td>\n\nkey\\_modified\\_time\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nregistry\\_value\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsubkeys\\_count\n\n</td><td>\n\nInteger\n\n</td></tr><tr><td rowspan=\"26\">\n\nx509\\_certificate\n\n</td><td>\n\nauthority\\_key\\_identifier\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nbasic\\_constraints\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\ncertificate\\_policies\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\ncrl\\_distribution\\_points\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nextended\\_key\\_usage\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\ninhibit\\_any\\_policy\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nissuer\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nissuer\\_alternative\\_name\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nis\\_self\\_signed\n\n</td><td>\n\nBoolean\n\n</td></tr><tr><td>\n\nkey\\_usage\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nname\\_constraints\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\npolicy\\_constraints\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\npolicy\\_mappings\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nprivate\\_key\\_usage\\_valid\\_from\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nprivate\\_key\\_usage\\_valid\\_until\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nsignature\\_algorithm\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsubject\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsubject\\_alternative\\_name\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsubject\\_directory\\_attributes\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsubject\\_key\\_identifier\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsubject\\_public\\_key\\_algorithm\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nsubject\\_public\\_key\\_exponent\n\n</td><td>\n\nInteger\n\n</td></tr><tr><td>\n\nsubject\\_public\\_key\\_modulus\n\n</td><td>\n\nString\n\n</td></tr><tr><td>\n\nvalid\\_from\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nvalid\\_until\n\n</td><td>\n\nDate\n\n</td></tr><tr><td>\n\nversion\n\n</td><td>\n\nString\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example request contains three observables to create records for in TISC.\n\n```\ncurl 'http://instance.servicenow.com/api/sn_sec_tisc/v1/threat_intel_data/add_observables' \\\n--request POST \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Basic YWRtaW46YWRtaW4=' \\\n--data '{\n   \"source\": \"Sentinel\",\n   \"observables\": [\n      {\n         \"value\": \"1.2.1.45\",\n         \"type\": \"ip_v4_address\",\n         \"reputation\": \"malicious\",\n         \"confidence\": \"90\",\n         \"tags\": \"critical,important\",\n         \"taxonomies\": \"MITRE: T121\",\n         \"attack_phases\": \"Lockheed Martin: Reconnaissance\",\n         \"usage_categories\": \"Infected Bot\",\n         \"first_seen\": \"2023-10-14T18:01:34.000Z\",\n         \"attributes\": {\n            \"as_number\": \"14280\"\n         }\n      },\n      {\n         \"value\": \"https://example.com\",\n         \"type\": \"url\",\n         \"tags\": \"important\",\n         \"confidence\": \"50\",\n         \"reputation\": \"malicious\"\n      },\n      {\n         \"value\": \"1.1.1.1\",\n         \"type\": \"ip_add\",\n         \"confidence\": \"50\",\n         \"reputation\": \"malicious\"\n      }\n   ]\n}'\n```\n\nTwo of the three observables were successfully added to TISC. One record wasn't created because the observable type is invalid.\n\n```\n{\n   \"status\": \"partial_success\",\n   \"metadata\": {\n      \"total_records\": 3,\n      \"success_records\": 2,\n      \"error_records\": 1\n   },\n   \"success_records\": [\n      {\n         \"value\": \"1.2.1.45\",\n         \"type\": \"ip_v4_address\",\n         \"sys_id\": \"e519392643e642102164e0ea78b8f29d\"\n      },\n      {\n         \"value\": \"https://example.com\",\n         \"type\": \"url\",\n         \"sys_id\": \"ad1979ae43ea42102164e0ea78b8f241\"\n      }\n   ],\n   \"error_records\": [\n      {\n         \"value\": \"1.1.1.1\",\n         \"type\": \"ip_va\",\n         \"error_message\": \"The 'type' field value is invalid\"\n      }\n   ]\n}\n```\n\n## TISC API - POST /sn\\_sec\\_tisc/threat\\_intel\\_data/observables\n\nRetrieves observables data, including relationships between observables and other threat intelligence data such as Structured Threat Information Expression \\(STIX\\) objects.\n\nObservables returned in the response are sorted by **sys\\_id** in ascending order.\n\nFor more information about observables and STIX objects, see [IoC Repository](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/security-management/ioc-repository.md).\n\nTo access this endpoint, the caller must have the sn\\_sec\\_tisc.api\\_obs\\_read\\_access role, which by default is included in the Threat Intelligence administrator role \\(sn\\_sec\\_tisc.admin\\).\n\n### URL format\n\nVersioned URL: `/api/sn_sec_tisc/{api_version}/threat_intel_data/observables`\n\nDefault URL: `/api/sn_sec_tisc/threat_intel_data/observables`\n\n**Note:** Available versions are specified in the [REST API Explorer](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/use-REST-API-Explorer.md). For scripted REST APIs there is additional version information on the [Scripted REST Service form](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_CustomWebServices.md).\n\n### Supported request parameters\n\n<table class=\"rest_api_path_parameters\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\napi\\_version\n\n</td><td id=\"version-entry-RESTAPI\">\n\nOptional. Version of the endpoint to access. For example, `v1` or `v2`. Only specify this value to use an endpoint version other than the latest. Data type: String\n\n</td></tr></tbody>\n</table>|Name|Description|\n|----|-----------|\n|None| |\n\n<table class=\"rest_api_request_body\"><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nincluded\\_fields\n\n</td><td>\n\nFields to return for observables, observable references, and STIX objects in the response. Different fields can be returned for observables, references, and each type of STIX object.ServiceNow system fields, except for sys\\_created\\_on, sys\\_updated\\_on, and sys\\_id, aren't returned in the response.\n\nData type: Object\n\n```\n\"included_fields\": { \n   \"observable\": {Object},\n   \"reference\": {Object},\n   \"<stix_object>\": {Object}\n} \n```\n\n</td></tr><tr><td>\n\nincluded\\_fields.observable\n\n</td><td>\n\nFields to return for observables. Data type: Object\n\n```\n\"observable\": { \n   \"attributes\": {Object},\n   \"common_fields\": {Object}\n}\n```\n\nDefault: Returns the fields syd\\_id, type, and value for all observable types.\n\n</td></tr><tr><td>\n\nincluded\\_fields.observable.attributes\n\n</td><td>\n\nFields to return for specified observable types. Data type: Object\n\n```\n\"attributes\": { \n   \"<observable_type>\": {Object}\n}\n```\n\nDefault: No fields specific to an observable type are returned. Only the fields syd\\_id, type, and value are returned.\n\n</td></tr><tr><td>\n\nincluded\\_fields.observable.attributes.&lt;observable\\_type&gt;\n\n</td><td>\n\nFields to return for an observable type.Data type: Object\n\n```\n\"<observable_type>\": { \n   \"include_all_fields\": Boolean, \n   \"values\": [Array] \n}\n```\n\nReplace `<observable_type>` with the name of the observable type, such as `artifact`. For a complete list of valid observable types, see the Value field in the Observable Type \\[sn\\_sec\\_tisc\\_observable\\_type\\] table.\n\n</td></tr><tr><td>\n\nincluded\\_fields.observable.attributes.&lt;observable\\_type&gt;.include\\_all\\_fields\n\n</td><td>\n\nFlag that indicates whether to return all available fields for the observable type.Valid values:\n\n-   true: Return all fields for the observable type.\n-   false: Only return fields specified in the **values** parameter for the observable type.\n\nData type: Boolean\n\n</td></tr><tr><td>\n\nincluded\\_fields.observable.attributes.&lt;observable\\_type&gt;.values\n\n</td><td>\n\nList of fields to return for the observable type. Only use this parameter if the value of **include\\_all\\_fields** is false.Data type: Array of Strings\n\n```\n\"values\": [\n   \"String\"\n]\n```\n\nThe fields provided must be column\\_names from the table for the observable type. The following tables are used for observable types.\n\n-   Artifact \\[sn\\_sec\\_tisc\\_artifact\\]\n-   AS Number \\[sn\\_sec\\_tisc\\_as\\_number\\]\n-   Directory \\[sn\\_sec\\_tisc\\_directory\\]\n-   Domain Name \\[sn\\_sec\\_tisc\\_domain\\_name\\]\n-   Email Address \\[sn\\_sec\\_tisc\\_email\\_address\\]\n-   Email Message \\[sn\\_sec\\_tisc\\_email\\_message\\]\n-   Email Subject \\[sn\\_sec\\_tisc\\_email\\_subject\\]\n-   File \\[sn\\_sec\\_tisc\\_file\\]\n-   IPv4 Address \\[sn\\_sec\\_tisc\\_ipv4\\_address\\]\n-   IPv4 CIDR \\[sn\\_sec\\_tisc\\_ipv4\\_cidr\\]\n-   IPv6 Address \\[sn\\_sec\\_tisc\\_ipv6\\_address\\]\n-   IPv6 CIDR \\[sn\\_sec\\_tisc\\_ipv6\\_cidr\\]\n-   MAC Address \\[sn\\_sec\\_tisc\\_mac\\_address\\]\n-   MD5 Hash \\[sn\\_sec\\_tisc\\_md5\\_hash\\]\n-   Mutex Name \\[sn\\_sec\\_tisc\\_mutex\\_name\\]\n-   Network \\[sn\\_sec\\_tisc\\_network\\]\n-   Other Observable \\[sn\\_sec\\_tisc\\_other\\_observable\\]\n-   Process \\[sn\\_sec\\_tisc\\_process\\]\n-   SHA1 Hash \\[sn\\_sec\\_tisc\\_sha1\\_hash\\]\n-   SHA256 Hash \\[sn\\_sec\\_tisc\\_sha256\\_hash\\]\n-   SHA512 Hash \\[sn\\_sec\\_tisc\\_sha512\\_hash\\]\n-   Software \\[sn\\_sec\\_tisc\\_software\\]\n-   URL \\[sn\\_sec\\_tisc\\_url\\]\n-   User Account \\[sn\\_sec\\_tisc\\_user\\_account\\]\n-   Windows Registry Key \\[sn\\_sec\\_tisc\\_windows\\_registry\\_key\\]\n-   X.509 Certificate \\[sn\\_sec\\_tisc\\_x\\_509\\_certificate\\]\n\n</td></tr><tr><td>\n\nincluded\\_fields.observable.common\\_fields\n\n</td><td>\n\nFields to return for all observable types.The fields must be from the Observable \\[sn\\_sec\\_tisc\\_observable\\] table because they must be common to all observable types.\n\nData type: Object\n\n```\n\"common_fields\": { \n   \"include_all_fields\": Boolean, \n   \"values\": [Array] \n}\n```\n\nDefault: Returns the fields syd\\_id, type, and value for all observable types.\n\n</td></tr><tr><td>\n\nincluded\\_fields.observable.common\\_fields.include\\_all\\_fields\n\n</td><td>\n\nFlag that indicates whether to return all fields from the Observable \\[sn\\_sec\\_tisc\\_observable\\] table for all observable types.Valid values:\n\n-   true: Return all fields from the Observable \\[sn\\_sec\\_tisc\\_observable\\] table.\n-   false: Only return fields specified in the **common\\_fields.values** parameter.\n\nData type: Boolean\n\n</td></tr><tr><td>\n\nincluded\\_fields.observable.common\\_fields.values\n\n</td><td>\n\nList of fields to return for all observable types. Only use this parameter if the value of **common\\_fields.include\\_all\\_fields** is false.Data type: Array of Strings\n\n```\n\"values\": [\n   \"String\"\n]\n```\n\nThe fields provided must be column names from the Observable \\[sn\\_sec\\_tisc\\_observable\\] table.\n\n</td></tr><tr><td>\n\nincluded\\_fields.reference\n\n</td><td>\n\nFields to return for observable references. Observable references are external references used to describe pointers to information represented outside of STIX.Data type: Object\n\n```\n\"reference\": { \n   \"include_all_fields\": Boolean, \n   \"values\": [Array] \n}\n```\n\nDefault: Returns the fields reference\\_source, sys\\_id, and url.\n\n</td></tr><tr><td>\n\nincluded\\_fields.reference.include\\_all\\_fields\n\n</td><td>\n\nFlag that indicates whether to return all available fields for observable references.Valid values:\n\n-   true: Return all fields for observable references.\n-   false: Only return fields specified in the **reference.values** parameter.\n\nData type: Boolean\n\n</td></tr><tr><td>\n\nincluded\\_fields.reference.values\n\n</td><td>\n\nList of fields to return for observable references. Only use this parameter if the value of **reference.include\\_all\\_fields** is false.Data type: Array of Strings\n\n```\n\"values\": [\n   \"String\"\n]\n```\n\nThe fields provided must be column names from the Observable Reference \\[sn\\_sec\\_tisc\\_observable\\_reference\\] table.\n\n</td></tr><tr><td>\n\nincluded\\_fields.&lt;stix\\_object&gt;\n\n</td><td>\n\nObject containing fields to return for a STIX object type.Data type: Object\n\n```\n\"<stix_object>\": { \n  \"include_all_fields\": Boolean, \n  \"values\": [Array] \n}\n```\n\nReplace `<stix_object>` with the name of the STIX object type, such as `attack_pattern`.\n\nValid STIX object types:\n\n-   attack\\_pattern\n-   campaign\n-   course\\_of\\_action\n-   data\\_component\n-   data\\_source\n-   grouping\n-   identity\n-   incident\n-   indicator\n-   infrastructure\n-   intrusion\\_set\n-   location\n-   malware\n-   malware\\_analysis\n-   note\n-   observed\\_data\n-   opinion\n-   report\n-   threat\\_actor\n-   tool\n-   vulnerability\n\nDefault: Returns the fields id, name, and sys\\_id.\n\n</td></tr><tr><td>\n\nincluded\\_fields.&lt;stix\\_object&gt;.include\\_all\\_fields\n\n</td><td>\n\nFlag that indicates whether to return all available fields for the STIX object type.Valid values:\n\n-   true: Return all fields for the STIX object type.\n-   false: Only return fields specified in the **values** parameter for the STIX object type.\n\nData type: Boolean\n\n</td></tr><tr><td>\n\nincluded\\_fields.&lt;stix\\_object&gt;.values\n\n</td><td>\n\nList of fields to return for the STIX object type. Only use this parameter if the value of **include\\_all\\_fields** is false.Data type: Array of Strings\n\n```\n\"values\": [\n   \"String\"\n]\n```\n\nThe fields provided must be column\\_names from the table for the STIX object type. The following tables are used for STIX objects.\n\n-   Attack Pattern \\[sn\\_sec\\_tisc\\_attack\\_pattern\\]\n-   Campaign \\[sn\\_sec\\_tisc\\_campaign\\]\n-   Course of Action \\[sn\\_sec\\_tisc\\_course\\_of\\_action\\]\n-   Data Component \\[sn\\_sec\\_tisc\\_aggregated\\_data\\_component\\]\n-   Data Source \\[sn\\_sec\\_tisc\\_aggregated\\_data\\_source\\]\n-   Grouping \\[sn\\_sec\\_tisc\\_threat\\_grouping\\]\n-   Identity \\[sn\\_sec\\_tisc\\_identity\\]\n-   Incident \\[sn\\_sec\\_tisc\\_threat\\_event\\]\n-   Indicator \\[sn\\_sec\\_tisc\\_indicator\\]\n-   Infrastructure \\[sn\\_sec\\_tisc\\_infrastructure\\]\n-   Intrusion Set \\[sn\\_sec\\_tisc\\_intrusion\\_set\\]\n-   Location \\[sn\\_sec\\_tisc\\_location\\]\n-   Malware \\[sn\\_sec\\_tisc\\_malware\\]\n-   Malware Analysis \\[sn\\_sec\\_tisc\\_malware\\_analysis\\]\n-   Note \\[sn\\_sec\\_tisc\\_threat\\_note\\]\n-   Observed Data \\[sn\\_sec\\_tisc\\_observed\\_data\\]\n-   Opinion \\[sn\\_sec\\_tisc\\_threat\\_opinion\\]\n-   Report \\[sn\\_sec\\_tisc\\_threat\\_report\\]\n-   Threat Actor \\[sn\\_sec\\_tisc\\_threat\\_actor\\]\n-   Tool \\[sn\\_sec\\_tisc\\_tool\\]\n-   Vulnerability \\[sn\\_sec\\_tisc\\_vulnerability\\]\n\n</td></tr><tr><td>\n\nobservable\\_filters\n\n</td><td>\n\nFilters to apply to the observables. Only observables that match the filter criteria are returned in the response.Data type: Object\n\n```\n\"observable_filters\": {\n   \"boolean_operator\": \"String\", \n   \"filters\": [Array]\n}\n```\n\nDefault: Empty object \\(no filters applied\\)\n\n</td></tr><tr><td>\n\nobservable\\_filters.boolean\\_operator\n\n</td><td>\n\nBoolean operator to use for the filter conditions.Valid values:\n\n-   AND: Return observables that meet all filter conditions.\n-   OR: Return observables that meet at least one of the filter conditions.\n\nData type: String\n\n</td></tr><tr><td>\n\nobservable\\_filters.filters\n\n</td><td>\n\nFilters to apply to the observables. Each filter object can be simple or complex.\n\n-   Simple filters contain a field name, operator, and value.\n-   Complex filters contain a Boolean operator and an array of simple filters. The Boolean operator is applied to the array of simple filters.\n\nData type: Array of Objects\n\n```\n\"filters\": [ \n   //Simple filter \n   { \n      \"field_name\": \"String\", \n      \"operator\": \"String\", \n      \"field_value\": \"String\" \n   }, \n   //Complex filter \n   {\n      \"boolean_operator\": \"String\", \n      \"filters\": [\n         {\n\t     \"field_name\": \"String\",\n\t     \"operator\": \"String\",\n\t     \"field_value\": \"String\"\n         }  \n      ]\n   }\n]\n```\n\n</td></tr><tr><td>\n\nobservable\\_filters.filters.field\\_name\n\n</td><td>\n\nName of the field to use to filter the observables. Valid values:\n\n-   confidence\n-   reputation\n-   security\\_type\n-   status\n-   sys\\_created\\_on\n-   sys\\_updated\\_on\n-   tags\n-   taxonomies\n-   threat\\_score\n-   type\n-   value\n-   watch\\_list\n\nData type: String\n\n</td></tr><tr><td>\n\nobservable\\_filters.filters.operator\n\n</td><td>\n\nOperator to use for the filter.For more information about operators, see [Operators available for filters and queries](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-user-interface/r_OpAvailableFiltersQueries.md).\n\nThe data type of the filter field determines the valid operators. The following operators are valid for each data type.\n\n-   **Boolean**\n\nApplicable field: watch\\_list\n\n    -   !=\n    -   =\n    -   ISEMPTY\n    -   ISNOTEMPTY\n-   **Choice**\n\nApplicable fields: reputation, security\\_type, status\n\n    -   !=\n    -   =\n    -   ENDSWITH\n    -   IN\n    -   LIKE\n    -   NOT IN\n    -   NOT LIKE\n    -   STARTSWITH\n-   **Date-time**\n\nApplicable fields: sys\\_created\\_on, sys\\_updated\\_on\n\n    -   &lt;\n    -   &lt;=\n    -   &gt;\n    -   &gt;=\n    -   ISEMPTY\n    -   ISNOTEMPTY\n    -   NOTON\n    -   ON\n-   **GlideList**\n\nApplicable fields: tags, taxonomies\n\n    -   IN\n    -   NOT IN\n\n**Note:** Must use a single valid, existing value for the filter condition, and empty observable field values aren't considered a match.\n\n    -   ISEMPTY\n    -   ISNOTEMPTY\n    -   LIKE\n\n**Note:** Must use a single value for the filter condition.\n\n    -   NOT LIKE\n\n**Note:** Must use a single value for the filter condition, and empty observable field values aren't considered a match.\n\n-   **Number**\n\nApplicable fields: confidence, threat\\_score\n\n    -   !=\n    -   &lt;=\n    -   =\n    -   &gt;=\n    -   ISEMPTY\n    -   ISNOTEMPTY\n-   **Reference**\n\nApplicable field: type\n\n    -   !=\n    -   =\n    -   IN\n    -   ISEMPTY\n    -   ISNOTEMPTY\n-   **String**\n\nApplicable field: value\n\n    -   !=\n    -   &lt;=\n    -   =\n    -   &gt;=\n    -   ENDSWITH\n    -   IN\n    -   ISEMPTY\n    -   ISNOTEMPTY\n    -   LIKE\n    -   NOT LIKE\n    -   STARTSWITH\n\nData type: String\n\n</td></tr><tr><td>\n\nobservable\\_filters.filters.field\\_value\n\n</td><td>\n\nValue of the field.For choice fields, the value must be the internal value, not the display value. For date-time fields, the value must be in ISO format in the UTC timezone.\n\n**Note:** This parameter isn’t required when using the ISEMPTY or ISNOTEMPTY operators.\n\nData type: String\n\n</td></tr><tr><td>\n\npage\\_size\n\n</td><td>\n\nLimits the number of observables that are returned in the API response. Used for pagination.Data type: String\n\nDefault: 100\n\nMaximum value: 1000\n\n</td></tr><tr><td>\n\npage\\_token\n\n</td><td>\n\nUsed to get observables data for the current page.To get the first page, this parameter can be omitted or the value for this parameter must be an empty string. To get the next page in the following request, use the **next\\_page\\_token** value from the response body as the value for this parameter.\n\nData type: String\n\nDefault: Empty string\n\n</td></tr><tr><td>\n\nrelationships\n\n</td><td>\n\nRelationship types to return for each observable in the response. The relationships can be with another observable, an observable reference, or a Structured Threat Information Expression \\(STIX\\) object.\n\nValid values:\n\n-   attack\\_pattern\n-   campaign\n-   course\\_of\\_action\n-   data\\_component\n-   data\\_source\n-   grouping\n-   identity\n-   incident\n-   indicator\n-   infrastructure\n-   intrusion\\_set\n-   location\n-   malware\n-   malware\\_analysis\n-   note\n-   observable\n-   observed\\_data\n-   opinion\n-   reference\n-   report\n-   threat\\_actor\n-   tool\n-   vulnerability\n\nFor example, passing the array `[\"observable\", \"threat_actor\"]` returns all related observables and threat actors for each observable in the response.\n\nData type: Array\n\nDefault: Empty array \\(no relationships returned\\)\n\n</td></tr></tbody>\n</table>### Headers\n\nThe following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see [Supported REST API headers](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n|Header|Description|\n|------|-----------|\n|Accept|Data format of the response body. Only supports **application/json**.|\n|Content-Type|Data format of the request body. Only supports **application/json**.|\n\n|Header|Description|\n|------|-----------|\n|None| |\n\n### Status codes\n\nThe following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see [REST API HTTP response codes](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/rest-api-explorer/c_RESTAPI.md).\n\n<table><thead><tr><th>\n\nStatus code\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\n200\n\n</td><td id=\"entry-200-status-code\">\n\nSuccessful. The request was successfully processed.\n\n</td></tr><tr><td>\n\n400\n\n</td><td>\n\nBad request. The request parameters are invalid or the request body JSON has a syntactical error.To view details about the error, see the **error** parameter in the response body.\n\n</td></tr><tr><td>\n\n401\n\n</td><td>\n\nUnauthorized. The user authentication is invalid. Check the user name and password or OAuth token.\n\n</td></tr><tr><td>\n\n403\n\n</td><td>\n\nForbidden. The calling user is missing a required role. The sn\\_sec\\_tisc.api\\_obs\\_read\\_access role is required to access this endpoint.\n\n</td></tr><tr><td>\n\n429\n\n</td><td>\n\nToo many requests. The number of API requests exceeds the rate limit for the API. By default, the limit is 500 requests per hour.\n\n</td></tr><tr><td>\n\n500\n\n</td><td>\n\nInternal server error. Check application logs in the Log \\[syslog\\] table for more information about the error.\n\n</td></tr></tbody>\n</table>### Response body parameters \\(JSON\\)\n\n<table><thead><tr><th>\n\nName\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nerror\n\n</td><td>\n\nError information. This parameter is only returned if the request failed.Data type: Object\n\n```\n\"error\": {\n   \"message\": \"String\",\n   \"detail\": \"String\"\n}\n```\n\n</td></tr><tr><td>\n\nerror.message\n\n</td><td>\n\nError message containing the reason the request failed.Data type: String\n\n</td></tr><tr><td>\n\nerror.detail\n\n</td><td>\n\nAdditional details about why the request failed.Data type: String\n\n</td></tr><tr><td>\n\nis\\_last\\_page\n\n</td><td>\n\nFlag that indicates whether this is the last page of observables data.Valid values:\n\n-   true: This response contains the last page of data.\n-   false: There are additional pages that can be returned.\n\nData type: Boolean\n\n</td></tr><tr><td>\n\nnext\\_page\\_token\n\n</td><td>\n\nUse this value in the next API request to get the next page of observables data. Provide this value in the **page\\_token** parameter in the request body.Data type: String\n\n</td></tr><tr><td>\n\nobservables\n\n</td><td>\n\nObservables objects. Data type: Array of Objects\n\n```\n\"observables\": [\n  {\n    \"attributes\": {Object},\n    \"relationships\": {Object},\n    \"sys_id\": \"String\",\n    \"type\": \"String\",\n    \"value\": \"String\"\n  }\n]\n```\n\nEach observables object also includes the fields specified by the **included\\_fields.observable.common\\_fields** parameter in the request body.\n\n</td></tr><tr><td>\n\nobservables.attributes\n\n</td><td>\n\nName-value pairs for the fields specified by the **included\\_fields.observable.attributes.&lt;observable\\_type&gt;** parameter in the request body.Data type: Object\n\n```\n\"attributes\": {\n   \"<field>\": \"<value>\"\n}\n```\n\n</td></tr><tr><td>\n\nobservables.relationships\n\n</td><td>\n\nRelationships for the observable. The types of relationships returned are specified by the **relationships** parameter in the request body, and the fields returned for each relationship are specified by the **included\\_fields** parameter in the request body.This example shows the basic structure of this parameter. However, the relationship types and fields returned vary based on the request body parameters.\n\nData type: Object\n\n```\n\"relationships\": {\n   \"observable\": [\n      {\n         \"sys_id\": \"String\",\n         \"type\": \"String\",\n         \"value\": \"String\"\n      }\n   ],\n   \"indicator\": [\n      {\n         \"id\": \"String\",\n         \"name\": \"String\",\n         \"sys_id\": \"String\"\n      }\n   ],\n   \"attack_pattern\": [\n      {\n         \"id\": \"String\",\n         \"name\": \"String\",\n         \"sys_id\": \"String\"\n      }\n   ]\n}\n```\n\n</td></tr><tr><td>\n\nobservables.sys\\_id\n\n</td><td>\n\nSys\\_id of the observable.Data type: String\n\nTable: Observable \\[sn\\_sec\\_tisc\\_observable\\]\n\n</td></tr><tr><td>\n\nobservables.type\n\n</td><td>\n\nType of observable. For a complete list of valid observable types, see the **Value** field in the Observable Type \\[sn\\_sec\\_tisc\\_observable\\_type\\] table.Data type: String\n\n</td></tr><tr><td>\n\nobservables.value\n\n</td><td>\n\nValue associated with the observable, such as an IP address or URL.Data type: String\n\n</td></tr><tr><td>\n\norigin\n\n</td><td>\n\nOrigin application of the response, which is Threat Intelligence Security Center \\(TISC\\). The value of this parameter is `sn_sec_tisc`.This value can optionally be used by SIEMs consuming the API response to trace whether the intelligence from TISC resulted in the creation of security incidents.\n\nData type: String\n\n</td></tr><tr><td>\n\npage\\_size\n\n</td><td>\n\nMaximum number of observables returned in the response. Used for pagination.Data type: String\n\n</td></tr><tr><td>\n\nstatus\n\n</td><td>\n\nStatus of the API request.Possible values:\n\n-   failure\n-   success\n\nIf the request failed, see the **error** parameter in the response body for more information about the error.\n\nData type: String\n\n</td></tr></tbody>\n</table>### cURL request\n\nThis example returns the first page of observables data. The **observable\\_filters** parameter specifies to return only observables that match the condition `status = active AND [threat_score >= 70 OR confidence >= 50]`.\n\n```\ncurl 'http://instance.servicenow.com/api/sn_sec_tisc/v1/threat_intel_data/observables' \\\n--request POST \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Basic YWRtaW46YWRtaW4=' \\\n--data '{\n   \"page_size\": \"100\",\n   \"page_token\": \"\",\n   \"relationships\": [\n      \"observable\",\n      \"threat_actor\",\n      \"indicator\",\n      \"reference\",\n      \"attack_pattern\"\n   ],\n   \"included_fields\": {\n      \"observable\": {\n         \"common_fields\": {\n            \"include_all_fields\": false,\n            \"values\": [\n               \"value\",\n               \"reputation\",\n               \"confidence\"\n            ]\n         },\n         \"attributes\": {\n            \"ip_v4_address\": {\n               \"include_all_fields\": false,\n               \"values\": [\n                  \"as_number\"\n               ]\n            },\n            \"artifact\": {\n               \"include_all_fields\": false,\n               \"values\": [\n                  \"mime_type\",\n                  \"encryption_algorithm\"\n               ]\n            }\n         }\n      },\n      \"threat_actor\": {\n         \"include_all_fields\": false,\n         \"values\": [\n            \"name\",\n            \"aliases\",\n            \"description\",\n            \"threat_actor_roles\"\n         ]\n      },\n      \"attack_pattern\": {\n         \"include_all_fields\": true\n      },\n      \"indicator\": {\n         \"include_all_fields\": false,\n         \"values\": [\n            \"name\",\n            \"pattern\",\n            \"pattern_type\",\n            \"indicator_types\"\n         ]\n      },\n      \"reference\": {\n         \"include_all_fields\": true,\n         \"values\": [\n            \"description\"\n         ]\n      }\n   },\n   \"observable_filters\": {\n      \"boolean_operator\": \"AND\",\n      \"filters\": [\n         {\n            \"field_name\": \"status\",\n            \"operator\": \"=\",\n            \"field_value\": \"active\"\n         },\n         {\n            \"boolean_operator\": \"OR\",\n            \"filters\": [\n               {\n                  \"field_name\": \"threat_score\",\n                  \"operator\": \">=\",\n                  \"field_value\": \"70\"\n               },\n               {\n                  \"field_name\": \"confidence\",\n                  \"operator\": \">=\",\n                  \"field_value\": \"50\"\n               }\n            ]\n         }\n      ]\n   }\n}'\n```\n\nResponse body.\n\n```\n{\n   \"status\": \"success\",\n   \"observables\": [\n      {\n         \"sys_id\": \"792e3d1543a0421060eee0ea78b8f227\",\n         \"type\": \"url\",\n         \"value\": \"https://www.example.com\",\n         \"confidence\": \"60\",\n         \"reputation\": \"\",\n         \"relationships\": {\n            \"observable\": [\n               {\n                  \"sys_id\": \"ccadb19143a0421060eee0ea78b8f25a\",\n                  \"type\": \"ip_v4_address\",\n                  \"value\": \"1.1.1.1\",\n                  \"confidence\": \"20\",\n                  \"reputation\": \"malicious\"\n               }\n            ],\n            \"indicator\": [\n               {\n                  \"id\": \"indicator--294d97754364c21060eee0ea78b8f2ae\",\n                  \"indicator_types\": \"\",\n                  \"name\": \"Poison Ivy\",\n                  \"pattern\": \"\",\n                  \"pattern_type\": \"sigma\",\n                  \"sys_id\": \"a54d97754364c21060eee0ea78b8f2ae\",\n                  \"type\": \"indicator\"\n               }\n            ],\n            \"attack_pattern\": [\n               {\n                  \"name\": \"Phishing\",\n                  \"sys_id\": \"010d5bf14364c21060eee0ea78b8f2ac\",\n                  \"id\": \"attack-pattern--810d5bf14364c21060eee0ea78b8f2ac\",\n                  \"type\": \"attack-pattern\"\n               }\n            ],\n            \"reference\": [\n               {\n                  \"description\": \"phishing\",\n                  \"reference_source\": \"CAPEC-98\",\n                  \"sys_created_on\": \"2024-02-25T03:34:45.000Z\",\n                  \"sys_id\": \"a42d97354364c21060eee0ea78b8f28c\",\n                  \"sys_updated_on\": \"2024-02-25T03:34:45.000Z\",\n                  \"url\": \" https://capec.mitre.org/data/98.html \"\n               }\n            ]\n         },\n         \"attributes\": {\n            \"encryption_algorithm\": \"mime-type-indicated\",\n            \"mime_type\": \"application/zip\"\n         }\n      },\n      {\n         \"sys_id\": \"ccadb19143a0421060eee0ea78b8f2242\",\n         \"type\": \"ip_v4_address\",\n         \"value\": \"1.2.2.1\",\n         \"confidence\": \"70\",\n         \"reputation\": \"\",\n         \"relationships\": {}\n      },\n      {\n         \"sys_id\": \"7ccd359143a0421060eee0ea78b8f264\",\n         \"type\": \"artifact\",\n         \"value\": \"pom.xml\",\n         \"confidence\": \"\",\n         \"reputation\": \"\",\n         \"relationships\": {}\n      }\n   ],\n   \"page_size\": \"100\",\n   \"next_page_token\": \"drejvfgbresg|7ccd359143a0421060eee0ea78b8f264\",\n   \"is_last_page\": true,\n   \"origin\": \"sn_sec_tisc\"\n}\n```\n\n"}}