{"id":18484,"date":"2025-07-29T16:11:14","date_gmt":"2025-07-29T20:11:14","guid":{"rendered":"https:\/\/www.iri.com\/blog\/?p=18484"},"modified":"2025-09-03T17:02:08","modified_gmt":"2025-09-03T21:02:08","slug":"iri-darkshield-rest-api","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/","title":{"rendered":"IRI DarkShield REST API"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Version 6 of the <a href=\"https:\/\/www.iri.com\/products\/darkshield\"><strong>IRI DarkShield<\/strong><\/a> data masking tool now features a self-hosted (on-premise) REST API for PII (Personally Identifiable Information) data masking in structured, semi-structured, and unstructured data sources.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In previous articles, we have covered the related topics of DarkShield API <\/span><a href=\"https:\/\/www.iri.com\/blog\/data-protection\/darkshield-rpc-api\/\"><span style=\"font-weight: 400;\">Text<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/www.iri.com\/blog\/data-protection\/darkshield-files-rpc-api\/\"><span style=\"font-weight: 400;\">Files<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-nosql-rpc-api\/\"><span style=\"font-weight: 400;\">NoSql<\/span><\/a><span style=\"font-weight: 400;\">, and <\/span><a href=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rdb-rpc-api\/\"><span style=\"font-weight: 400;\">RDB<\/span><\/a><span style=\"font-weight: 400;\"> Remote Procedure Call (RPC) endpoints. In this article, we cover a single new endpoint that enables statelessness, providing easier integration with data masking and test data pipelines, as well as load balancing and other applications. <\/span><\/p>\n<h5><b>The Previous DarkShield RPC APIs<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">If you review previous articles on the various DarkShield RPC APIs, you will find sections that describe the steps for creating a Search and Mask job. These steps had often required anywhere from 5-13 separate http(s) requests to DarkShield from the client to perform a single search and masking job.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As an RPC, each request to DarkShield provides individual pieces\/instructions that, when aggregated over multiple requests, provide the full context necessary for a Search and Mask Job. This form of client interaction with the API stands in contrast to the tenants of statelessness.<\/span><\/p>\n<h5><b>Why Use a REST API?<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">With the format of an RPC API, there were some potential benefits in reusability and speed improvements in this method, thus DarkShield was initially built in this fashion. But as more use cases for DarkShield were presented to us by clients, we found the RPC format was no longer as beneficial. Furthermore, in certain scenarios, such as load balancing, which requires a stateless approach to communication, an RPC API was far more unwieldy.<\/span><\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18487\" src=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/image3-300x240.png\" alt=\"\" width=\"404\" height=\"323\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/image3-300x240.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/image3.png 392w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><\/p>\n<h5><b>What is Stateless?<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">According to Lokesh Gupta, \u201cStatelessness means that every HTTP request happens in complete isolation. When the Client makes an HTTP request, it includes all information necessary for the server to fulfill the request\u201d. In the context of a DarkShield task, this means that the client sends all relevant information in a single http request to DarkShield to perform a single search\/mask job.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this way, DarkShield can achieve statelessness to perform a Search and Mask on either files, relational databases, or NoSQL databases ,instead of previously requiring 5-13 separate HTTP\/s requests!<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-18488 aligncenter\" src=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/image1-300x158.png\" alt=\"\" width=\"422\" height=\"222\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/image1-300x158.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/image1.png 392w\" sizes=\"(max-width: 422px) 100vw, 422px\" \/><\/p>\n<p style=\"text-align: center;\"><i><span style=\"font-weight: 400;\">REST vs. RPC tables courtesy of <\/span><\/i><a href=\"https:\/\/patrickkarsh.medium.com\/\"><i><span style=\"font-weight: 400;\">https:\/\/patrickkarsh.medium.com\/<\/span><\/i><\/a><\/p>\n<h5><b>How to Configure a Request to the DarkShield REST API<\/b><\/h5>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18489\" src=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/image2-300x19.png\" alt=\"\" width=\"758\" height=\"48\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/image2-300x19.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/image2.png 591w\" sizes=\"(max-width: 758px) 100vw, 758px\" \/><\/p>\n<p><span style=\"font-weight: 400;\">The REST endpoint is defined as <\/span><span style=\"font-weight: 400;\">\u00a0%baseapiurl%<\/span><span style=\"font-weight: 400;\">\/api\/darkshield\/all\/allContext.searchAndMask<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The contents of the context stored in your JSON file vary depending on whether you are searching and masking files or databases.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-18521 aligncenter\" src=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield_REST_API_V6_Swagger-300x227.png\" alt=\"\" width=\"509\" height=\"385\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield_REST_API_V6_Swagger-300x227.png 300w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield_REST_API_V6_Swagger.png 512w\" sizes=\"(max-width: 509px) 100vw, 509px\" \/><\/p>\n<h5><b>Summary Pieces of DarkShield JSON Request Body<\/b><\/h5>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">searchContext<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">maskContext<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">fileSearchContext (required for files,rdb,nosql)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">fileMaskContext (required for files,rdb,nosql)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">rdbSearchContext (required for rdb)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">rdbMaskContext (required for rdb)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">nosqlSearchContext (required for nosql)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">nosqlMaskContext (required for nosql)\u00a0<\/span><\/li>\n<\/ul>\n<h6><b>Sample JSON Body:<\/b><\/h6>\n<p><span style=\"font-weight: 400;\">For RDB:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">{<\/span>\r\n<span style=\"font-weight: 400;\">            \"searchContext\": {<\/span>\r\n<span style=\"font-weight: 400;\">                  \"name\": \"SearchContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                  \"matchers\": []<\/span>\r\n<span style=\"font-weight: 400;\">            },<\/span>\r\n<span style=\"font-weight: 400;\">            \"maskContext\": {<\/span>\r\n<span style=\"font-weight: 400;\">                  \"name\": \"MaskContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                  \"rules\": [<\/span>\r\n<span style=\"font-weight: 400;\">                        {<\/span>\r\n<span style=\"font-weight: 400;\">                               \"name\": \"DataPseudoRulessn2\",<\/span>\r\n<span style=\"font-weight: 400;\">                               \"type\": \"cosort\",<\/span>\r\n<span style=\"font-weight: 400;\">                               \"expression\": \"deterministic_pseudo_replace<\/span>\r\n<span style=\"font-weight: 400;\">                               (\\\"fname\\\", ${PersonID}, \\\"pswd\\\")\"<\/span>\r\n<span style=\"font-weight: 400;\">                        },<\/span>\r\n<span style=\"font-weight: 400;\">                        {<\/span>\r\n<span style=\"font-weight: 400;\">                               \"name\": \"DataPseudoRulessn222\",<\/span>\r\n<span style=\"font-weight: 400;\">                               \"type\": \"cosort\",<\/span>\r\n<span style=\"font-weight: 400;\">                               \"expression\": \"deterministic_pseudo_replace<\/span>\r\n<span style=\"font-weight: 400;\">                               (\\\"full_name\\\", ${PersonID}, \\\"pswd\\\")\"<\/span>\r\n<span style=\"font-weight: 400;\">                        }<\/span>\r\n<span style=\"font-weight: 400;\">                ],<\/span>\r\n<span style=\"font-weight: 400;\">                \"ruleMatchers\": [<\/span>\r\n<span style=\"font-weight: 400;\">                        {<\/span>\r\n<span style=\"font-weight: 400;\">                               \"name\": \"DataPseudoRulessn2Matcher\",<\/span>\r\n<span style=\"font-weight: 400;\">                               \"type\": \"name\",<\/span>\r\n<span style=\"font-weight: 400;\">                               \"rule\": \"DataPseudoRulessn2\",<\/span>\r\n<span style=\"font-weight: 400;\">                               \"pattern\":\"Email_Email_location_2\"<\/span>\r\n<span style=\"font-weight: 400;\">                         },<\/span>\r\n<span style=\"font-weight: 400;\">                ]<\/span>\r\n<span style=\"font-weight: 400;\">           },<\/span>\r\n<span style=\"font-weight: 400;\">           \"fileSearchContext\": {<\/span>\r\n<span style=\"font-weight: 400;\">                 \"name\": \"FileSearchContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                 \"matchers\": [<\/span>\r\n<span style=\"font-weight: 400;\">                        {<\/span>\r\n<span style=\"font-weight: 400;\">                               \"name\": \"SearchContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                               \"type\": \"searchContext\"<\/span>\r\n<span style=\"font-weight: 400;\">                        },<\/span>\r\n<span style=\"font-weight: 400;\">                        {<\/span>\r\n<span style=\"font-weight: 400;\">                               \"name\": \"Email_Email_location_2\",<\/span>\r\n<span style=\"font-weight: 400;\">               \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span> <span style=\"font-weight: 400;\">\"dataClass\": \"Email\",<\/span>\r\n<span style=\"font-weight: 400;\">                \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span> <span style=\"font-weight: 400;\">\"searchMatcherPriority\": 2,<\/span>\r\n<span style=\"font-weight: 400;\">               \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span> <span style=\"font-weight: 400;\">\"type\": \"column\",<\/span>\r\n<span style=\"font-weight: 400;\">               \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span> <span style=\"font-weight: 400;\">\"pattern\": \"(?i)\\\\b.*EMAIL.*\\\\b\"<\/span>\r\n<span style=\"font-weight: 400;\">                        }<\/span>\r\n<span style=\"font-weight: 400;\">                 ],<\/span>\r\n<span style=\"font-weight: 400;\">                 \"configs\": {\r\n<\/span>                 <span style=\"font-weight: 400;\">}<\/span>\r\n<span style=\"font-weight: 400;\">           },<\/span>\r\n<span style=\"font-weight: 400;\">           \"fileMaskContext\": {<\/span>\r\n<span style=\"font-weight: 400;\">                 \"name\": \"FileMaskContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                 \"rules\": [<\/span>\r\n<span style=\"font-weight: 400;\">                       {<\/span>\r\n<span style=\"font-weight: 400;\">                              \"name\": \"MaskContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                              \"type\": \"maskContext\"<\/span>\r\n<span style=\"font-weight: 400;\">                       }                <\/span>\r\n<span style=\"font-weight: 400;\">                ],<\/span>\r\n<span style=\"font-weight: 400;\">                \"configs\": {<\/span>\r\n\r\n<span style=\"font-weight: 400;\">                }<\/span>\r\n<span style=\"font-weight: 400;\">          },<\/span>\r\n<span style=\"font-weight: 400;\">          \"rdbSearchContext\": {<\/span>\r\n<span style=\"font-weight: 400;\">                 \"name\": \"RdbSearchContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                 \"fileSearchContextName\": \"FileSearchContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                 \"configs\": {<\/span>\r\n<span style=\"font-weight: 400;\">                       \"schemaName\": \u201cTest\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"url\":\"jdbc:sqlserver:\/\/****:1433;<\/span>\r\n<span style=\"font-weight: 400;\">                       databaseName=IRI_Testing;encrypt=false;\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"username\": \"****\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"password\": \"****\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"includePattern\": \"SmallTable\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"driverClassName\": \r\n    \"com.microsoft.sqlserver.jdbc.SQLServerDriver\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"driverConfigs\": {<\/span>\r\n<span style=\"font-weight: 400;\">                             \"encrypt\": \"false\"<\/span>\r\n<span style=\"font-weight: 400;\">                       }<\/span>\r\n<span style=\"font-weight: 400;\">                  }<\/span>\r\n<span style=\"font-weight: 400;\">          },<\/span>\r\n<span style=\"font-weight: 400;\">          \"rdbMaskContext\": {<\/span>\r\n<span style=\"font-weight: 400;\">                 \"name\": \"RdbMaskContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                 \"fileMaskContextName\": \"FileMaskContext\",<\/span>\r\n<span style=\"font-weight: 400;\">                 \"configs\": {<\/span>\r\n<span style=\"font-weight: 400;\">                       \"schemaName\": \"Test\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"url\": \"jdbc:sqlserver:\/\/****:1433;<\/span>\r\n<span style=\"font-weight: 400;\">                       databaseName=IRI_Testing;encrypt=false;\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"username\": \"****\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"password\": \"****\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"driverClassName\": \r\n     \"com.microsoft.sqlserver.jdbc.SQLServerDriver\",<\/span>\r\n<span style=\"font-weight: 400;\">                       \"disableForeignKeys\": true,<\/span>\r\n<span style=\"font-weight: 400;\">                       \"disableTriggers\": false,<\/span>\r\n<span style=\"font-weight: 400;\">                       \"driverConfigs\": {<\/span>\r\n<span style=\"font-weight: 400;\">                              \"encrypt\": \"false\"<\/span>\r\n<span style=\"font-weight: 400;\">                       }<\/span>\r\n<span style=\"font-weight: 400;\">                }<\/span>\r\n<span style=\"font-weight: 400;\">      },<\/span>\r\n<span style=\"font-weight: 400;\">      \"sourceType\": \"rdb\"<\/span>\r\n<span style=\"font-weight: 400;\">}<\/span><\/pre>\n<p>Citations <span id='easy-footnote-1-18484' class='easy-footnote-margin-adjust'><\/span><span class='easy-footnote'><a href='https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#easy-footnote-bottom-1-18484' title='&lt;span style=&quot;font-weight: 400;&quot;&gt;Gupta, L. (2023, November 6). &lt;\/span&gt;&lt;i&gt;&lt;span style=&quot;font-weight: 400;&quot;&gt;Stateless rest api: Advantages of statelessness in rest&lt;\/span&gt;&lt;\/i&gt;&lt;span style=&quot;font-weight: 400;&quot;&gt;. REST API Tutorial. &lt;\/span&gt;&lt;a href=&quot;https:\/\/restfulapi.net\/statelessness\/&quot;&gt;&lt;span style=&quot;font-weight: 400;&quot;&gt;https:\/\/restfulapi.net\/statelessness\/&lt;\/span&gt;&lt;\/a&gt;&lt;span style=&quot;font-weight: 400;&quot;&gt;\u00a0&lt;\/span&gt;&lt;\/p&gt;\n&lt;p&gt;&lt;a href=&quot;https:\/\/patrickkarsh.medium.com\/rest-vs-rpc-a-comparative-analysis-of-api-architectures-mastering-api-design-71d242108882&quot;&gt;&lt;span style=&quot;font-weight: 400;&quot;&gt;https:\/\/patrickkarsh.medium.com\/rest-vs-rpc-a-comparative-analysis-of-api-architectures-mastering-api-design-71d242108882 '><sup>1<\/sup><\/a><\/span><\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Version 6 of the IRI DarkShield data masking tool now features a self-hosted (on-premise) REST API for PII (Personally Identifiable Information) data masking in structured, semi-structured, and unstructured data sources.\u00a0 In previous articles, we have covered the related topics of DarkShield API Text, Files, NoSql, and RDB Remote Procedure Call (RPC) endpoints. In this article,<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/\" title=\"IRI DarkShield REST API\">Read More<\/a><\/div>\n","protected":false},"author":152,"featured_media":18492,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[8],"tags":[2163,1386,2181,2180,14,2075,15,788,369,2162,1815,2161,1368,2159,2160,111,379,143],"class_list":["post-18484","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-protection","tag-api-integration","tag-darkshield","tag-data-classification-api","tag-data-discovery-api","tag-data-masking","tag-data-masking-api","tag-data-security","tag-iri-software","tag-nosql","tag-on-premise-security","tag-pii-protection","tag-privacy-compliance","tag-relational-databases","tag-rest-api","tag-stateless-api","tag-structured-data","tag-test-data-management","tag-unstructured-data"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v23.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>IRI DarkShield REST API - IRI<\/title>\n<meta name=\"description\" content=\"Explore the new REST API in IRI DarkShield Version 6, a self-hosted single-endpoint restful API for efficient PII discovery and data masking.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IRI DarkShield REST API\" \/>\n<meta property=\"og:description\" content=\"Explore the new REST API in IRI DarkShield Version 6, a self-hosted single-endpoint restful API for efficient PII discovery and data masking.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-29T20:11:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-03T21:02:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1152\" \/>\n\t<meta property=\"og:image:height\" content=\"552\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Adam Lewis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adam Lewis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/\"},\"author\":{\"name\":\"Adam Lewis\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e\"},\"headline\":\"IRI DarkShield REST API\",\"datePublished\":\"2025-07-29T20:11:14+00:00\",\"dateModified\":\"2025-09-03T21:02:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/\"},\"wordCount\":482,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png\",\"keywords\":[\"API Integration\",\"DarkShield\",\"data classification API\",\"data discovery API\",\"data masking\",\"data masking API\",\"data security\",\"IRI software\",\"NoSQL\",\"On-Premise Security\",\"PII protection\",\"Privacy Compliance\",\"relational databases\",\"REST API\",\"Stateless API\",\"structured data\",\"test data management\",\"unstructured data\"],\"articleSection\":[\"Data Masking\/Protection\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/\",\"url\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/\",\"name\":\"IRI DarkShield REST API - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png\",\"datePublished\":\"2025-07-29T20:11:14+00:00\",\"dateModified\":\"2025-09-03T21:02:08+00:00\",\"description\":\"Explore the new REST API in IRI DarkShield Version 6, a self-hosted single-endpoint restful API for efficient PII discovery and data masking.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png\",\"width\":1152,\"height\":552},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IRI DarkShield REST API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.iri.com\/blog\/#website\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"width\":750,\"height\":206,\"caption\":\"IRI\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e\",\"name\":\"Adam Lewis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g\",\"caption\":\"Adam Lewis\"},\"url\":\"https:\/\/www.iri.com\/blog\/author\/adaml\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"IRI DarkShield REST API - IRI","description":"Explore the new REST API in IRI DarkShield Version 6, a self-hosted single-endpoint restful API for efficient PII discovery and data masking.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/","og_locale":"en_US","og_type":"article","og_title":"IRI DarkShield REST API","og_description":"Explore the new REST API in IRI DarkShield Version 6, a self-hosted single-endpoint restful API for efficient PII discovery and data masking.","og_url":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/","og_site_name":"IRI","article_published_time":"2025-07-29T20:11:14+00:00","article_modified_time":"2025-09-03T21:02:08+00:00","og_image":[{"width":1152,"height":552,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png","type":"image\/png"}],"author":"Adam Lewis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Adam Lewis","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/"},"author":{"name":"Adam Lewis","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e"},"headline":"IRI DarkShield REST API","datePublished":"2025-07-29T20:11:14+00:00","dateModified":"2025-09-03T21:02:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/"},"wordCount":482,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png","keywords":["API Integration","DarkShield","data classification API","data discovery API","data masking","data masking API","data security","IRI software","NoSQL","On-Premise Security","PII protection","Privacy Compliance","relational databases","REST API","Stateless API","structured data","test data management","unstructured data"],"articleSection":["Data Masking\/Protection"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/","url":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/","name":"IRI DarkShield REST API - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png","datePublished":"2025-07-29T20:11:14+00:00","dateModified":"2025-09-03T21:02:08+00:00","description":"Explore the new REST API in IRI DarkShield Version 6, a self-hosted single-endpoint restful API for efficient PII discovery and data masking.","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png","width":1152,"height":552},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/data-protection\/iri-darkshield-rest-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"IRI DarkShield REST API"}]},{"@type":"WebSite","@id":"https:\/\/www.iri.com\/blog\/#website","url":"https:\/\/www.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iri.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/www.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","width":750,"height":206,"caption":"IRI"},"image":{"@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/37c0e5beab094bd61cc521902df2876e","name":"Adam Lewis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/087667d0c75d33bb6fab6e734bd89333?s=96&d=blank&r=g","caption":"Adam Lewis"},"url":"https:\/\/www.iri.com\/blog\/author\/adaml\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2025\/07\/DarkShield-REST-API.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/18484"}],"collection":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/users\/152"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=18484"}],"version-history":[{"count":9,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/18484\/revisions"}],"predecessor-version":[{"id":18587,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/18484\/revisions\/18587"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/18492"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=18484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=18484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=18484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}