{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","partial","tabs","tab","code-snippet"]},"type":"markdown"},"seo":{"title":"Extract data with the Search API"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"extract-data-with-the-search-api","__idx":0},"children":["Extract data with the Search API"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This playbook is for integrators and data teams who need a bulk extract from VBA, for example a nightly eligibility file for a vendor. It exports every enrollment row for one group, with member name, plan, and plan dates, to a CSV file, paging through the results 750 rows at a time."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Who this is for"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Data, reporting, and vendor-feed integrators"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Time to run"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["About 5 minutes, plus the time to page through your data"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Writes data?"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Only a search criteria record. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /criterias"]}," creates one, and the last step deletes it. The search itself only reads data."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoints used"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["4"]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Before you start"},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You have completed the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/developer-portal/get-started/quick-start"},"children":["quick start"]}," and can get an ID token."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You have read the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/developer-portal/concepts/search"},"children":["Search API concept page"]},", which explains SearchConfigs, criteria, and selected fields. This page does not repeat it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You know the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["group_ID"]}," to export. The samples use the placeholder ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DOCS-GRP1"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The CSV file holds member names and enrollment data. Store and transfer it like any other file containing personal health information."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-fits-together","__idx":1},"children":["How it fits together"]},{"$$mdtype":"Tag","name":"Diagram","attributes":{"data-language":"mermaid","diagramType":"mermaid","diagramSource":"sequenceDiagram\n  participant App as Your system\n  participant API as VBAPI\n  App->>API: GET /search-configs/ENROLLMENT\n  API-->>App: Tables and fields this config can use\n  App->>API: POST /criterias (Group_ID = DOCS-GRP1)\n  API-->>App: criteria_Key\n  loop page = 1, 2, 3 ... until a short page\n    App->>API: POST /search (criteria_Key, selectedFields, page, pageCount 750)\n    API-->>App: fieldMapping and results\n  end\n  App->>API: DELETE /criterias/{criteriaKey}\n","diagramHtml":"<svg id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 793px;\" viewBox=\"-50 -10 793 548\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"543\" y=\"462\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"API\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"618\" y=\"494.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"618\" dy=\"0\">VBAPI</tspan></text></g><g><rect x=\"0\" y=\"462\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"App\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"494.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Your system</tspan></text></g><g><line id=\"actor1\" x1=\"618\" y1=\"65\" x2=\"618\" y2=\"462\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"API\" data-et=\"life-line\" data-id=\"API\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"API\"><rect x=\"543\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"API\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"618\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"618\" dy=\"0\">VBAPI</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"462\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"App\" data-et=\"life-line\" data-id=\"App\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"App\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"App\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Your system</tspan></text></g></g><style>#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .error-icon{fill:#552222;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .error-text{fill:#552222;stroke:#552222;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .edge-thickness-normal{stroke-width:1px;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .edge-thickness-thick{stroke-width:3.5px;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .edge-pattern-solid{stroke-dasharray:0;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .marker{fill:#333333;stroke:#333333;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .marker.cross{stroke:#333333;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 p{margin:0;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 rect.note[data-look=\"neo\"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 text.actor&gt;tspan{fill:black;stroke:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .actor-line{stroke:#9370DB;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [id$=\"-arrowhead\"] path{fill:#333;stroke:#333;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .sequenceNumber{fill:white;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [id$=\"-sequencenumber\"]{fill:#333;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [id$=\"-crosshead\"] path{fill:#333;stroke:#333;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .messageText{fill:#333;stroke:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .labelText,#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .labelText&gt;tspan{fill:black;stroke:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .loopText,#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .loopText&gt;tspan{fill:black;stroke:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .sectionTitle,#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .sectionTitle&gt;tspan{fill:black;stroke:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .note{stroke:#aaaa33;fill:#fff5ad;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .noteText,#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .noteText&gt;tspan{fill:black;stroke:none;font-weight:normal;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .activation0{fill:#f4f4f4;stroke:#666;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .activation1{fill:#f4f4f4;stroke:#666;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .activation2{fill:#f4f4f4;stroke:#666;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .actorPopupMenu{position:absolute;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .actor-man circle,#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 line{fill:#ECECFF;stroke-width:2px;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 .node .neo-node{stroke:#9370DB;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].node rect,#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].cluster rect,#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].node path{stroke:#9370DB;stroke-width:1px;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].node .neo-line path{stroke:#9370DB;filter:none;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"control-structure\" data-id=\"i7\"><line x1=\"64\" y1=\"259\" x2=\"629\" y2=\"259\" class=\"loopLine\"></line><line x1=\"629\" y1=\"259\" x2=\"629\" y2=\"396\" class=\"loopLine\"></line><line x1=\"64\" y1=\"396\" x2=\"629\" y2=\"396\" class=\"loopLine\"></line><line x1=\"64\" y1=\"259\" x2=\"64\" y2=\"396\" class=\"loopLine\"></line><polygon points=\"64,259 114,259 114,272 105.6,279 64,279\" class=\"labelBox\"></polygon><text x=\"89\" y=\"272\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">loop</text><text x=\"371.5\" y=\"277\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"371.5\">[page = 1, 2, 3 ... until a short page]</tspan></text></g><text x=\"345\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">GET /search-configs/ENROLLMENT</text><line x1=\"76\" y1=\"111\" x2=\"614\" y2=\"111\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"App\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-arrowhead)\" style=\"fill: none;\"></line><text x=\"348\" y=\"126\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Tables and fields this config can use</text><line x1=\"617\" y1=\"157\" x2=\"79\" y2=\"157\" class=\"messageLine1\" data-et=\"message\" data-id=\"i1\" data-from=\"API\" data-to=\"App\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"345\" y=\"172\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /criterias (Group_ID = DOCS-GRP1)</text><line x1=\"76\" y1=\"203\" x2=\"614\" y2=\"203\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"App\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-arrowhead)\" style=\"fill: none;\"></line><text x=\"348\" y=\"218\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">criteria_Key</text><line x1=\"617\" y1=\"249\" x2=\"79\" y2=\"249\" class=\"messageLine1\" data-et=\"message\" data-id=\"i3\" data-from=\"API\" data-to=\"App\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"345\" y=\"309\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /search (criteria_Key, selectedFields, page, pageCount 750)</text><line x1=\"76\" y1=\"340\" x2=\"614\" y2=\"340\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"App\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-arrowhead)\" style=\"fill: none;\"></line><text x=\"348\" y=\"355\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">fieldMapping and results</text><line x1=\"617\" y1=\"386\" x2=\"79\" y2=\"386\" class=\"messageLine1\" data-et=\"message\" data-id=\"i6\" data-from=\"API\" data-to=\"App\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"345\" y=\"411\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">DELETE /criterias/{criteriaKey}</text><line x1=\"76\" y1=\"442\" x2=\"614\" y2=\"442\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"App\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-92040401b68353568857618033ff24d9d2322c6926ebaf99305bdf08d314af32-arrowhead)\" style=\"fill: none;\"></line></svg>","diagramHtmlDark":"<svg id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685\" width=\"100%\" xmlns=\"http://www.w3.org/2000/svg\" style=\"max-width: 793px;\" viewBox=\"-50 -10 793 548\" role=\"graphics-document document\" aria-roledescription=\"sequence\"><style>\n    #diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 foreignObject {\n      overflow: visible;\n    }\n  </style><g><rect x=\"543\" y=\"462\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"API\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"618\" y=\"494.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"618\" dy=\"0\">VBAPI</tspan></text></g><g><rect x=\"0\" y=\"462\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"App\" rx=\"3\" ry=\"3\" class=\"actor actor-bottom\"></rect><text x=\"75\" y=\"494.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Your system</tspan></text></g><g><line id=\"actor1\" x1=\"618\" y1=\"65\" x2=\"618\" y2=\"462\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"API\" data-et=\"life-line\" data-id=\"API\"></line><g id=\"root-1\" data-et=\"participant\" data-type=\"participant\" data-id=\"API\"><rect x=\"543\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"API\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"618\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"618\" dy=\"0\">VBAPI</tspan></text></g></g><g><line id=\"actor0\" x1=\"75\" y1=\"65\" x2=\"75\" y2=\"462\" class=\"actor-line 200\" stroke-width=\"0.5px\" stroke=\"#999\" name=\"App\" data-et=\"life-line\" data-id=\"App\"></line><g id=\"root-0\" data-et=\"participant\" data-type=\"participant\" data-id=\"App\"><rect x=\"0\" y=\"0\" fill=\"#eaeaea\" stroke=\"#666\" width=\"150\" height=\"65\" name=\"App\" rx=\"3\" ry=\"3\" class=\"actor actor-top\"></rect><text x=\"75\" y=\"32.5\" dominant-baseline=\"central\" alignment-baseline=\"central\" class=\"actor actor-box\" style=\"text-anchor: middle; font-size: 16px; font-weight: 400; font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif;\"><tspan x=\"75\" dy=\"0\">Your system</tspan></text></g></g><style>#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;fill:#ccc;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .error-icon{fill:#a44141;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .error-text{fill:#ddd;stroke:#ddd;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .edge-thickness-normal{stroke-width:1px;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .edge-thickness-thick{stroke-width:3.5px;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .edge-pattern-solid{stroke-dasharray:0;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .edge-pattern-dashed{stroke-dasharray:3;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .edge-pattern-dotted{stroke-dasharray:2;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .marker{fill:lightgrey;stroke:lightgrey;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .marker.cross{stroke:lightgrey;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 svg{font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;font-size:16px;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 p{margin:0;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .actor{stroke:#ccc;fill:#1f2020;stroke-width:1;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 rect.actor.outer-path[data-look=\"neo\"]{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 rect.note[data-look=\"neo\"]{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 text.actor&gt;tspan{fill:lightgrey;stroke:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .actor-line{stroke:#ccc;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:lightgrey;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:lightgrey;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [id$=\"-arrowhead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .sequenceNumber{fill:black;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [id$=\"-sequencenumber\"]{fill:lightgrey;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [id$=\"-crosshead\"] path{fill:lightgrey;stroke:lightgrey;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .messageText{fill:lightgrey;stroke:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .labelBox{stroke:#ccc;fill:#1f2020;filter:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .labelText,#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .labelText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .loopText,#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .loopText&gt;tspan{fill:lightgrey;stroke:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .sectionTitle,#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .sectionTitle&gt;tspan{fill:lightgrey;stroke:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#ccc;fill:#ccc;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .note{stroke:hsl(180, 0%, 18.3529411765%);fill:hsl(180, 1.5873015873%, 28.3529411765%);}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .noteText,#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .noteText&gt;tspan{fill:rgb(183.8476190475, 181.5523809523, 181.5523809523);stroke:none;font-weight:normal;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .activation0{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .activation1{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .activation2{fill:hsl(180, 1.5873015873%, 28.3529411765%);stroke:#ccc;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .actorPopupMenu{position:absolute;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .actorPopupMenuPanel{position:absolute;fill:#1f2020;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .actor-man circle,#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 line{fill:#1f2020;stroke-width:2px;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 g rect.rect{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));stroke:#ccc;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 .node .neo-node{stroke:#ccc;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].node rect,#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].cluster rect,#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].node polygon{stroke:url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].swimlane.cluster rect{filter:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].node path{stroke:url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-gradient);stroke-width:1px;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].node .neo-line path{stroke:#ccc;filter:none;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].node circle{stroke:url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].node circle .state-start{fill:#000000;}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].icon-shape .icon{fill:url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685 :root{--mermaid-font-family:\"Redocly Mermaid Sans\",Arial,\"Liberation Sans\",Arimo,Helvetica,\"Redocly Mermaid CJK\",sans-serif;}</style><g></g><defs><symbol id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-computer\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z\"></path></symbol></defs><defs><symbol id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-database\" fill-rule=\"evenodd\" clip-rule=\"evenodd\"><path transform=\"scale(.5)\" d=\"M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z\"></path></symbol></defs><defs><symbol id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-clock\" width=\"24\" height=\"24\"><path transform=\"scale(.5)\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z\"></path></symbol></defs><defs><marker id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-arrowhead\" refX=\"7.9\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M -1 0 L 10 5 L 0 10 z\"></path></marker></defs><defs><marker id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-crosshead\" markerWidth=\"15\" markerHeight=\"8\" orient=\"auto\" refX=\"4\" refY=\"4.5\"><path fill=\"none\" stroke=\"#000000\" stroke-width=\"1pt\" d=\"M 1,2 L 6,7 M 6,2 L 1,7\" style=\"stroke-dasharray: 0, 0;\"></path></marker></defs><defs><marker id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-filled-head\" refX=\"15.5\" refY=\"7\" markerWidth=\"20\" markerHeight=\"28\" orient=\"auto\"><path d=\"M 18,7 L9,13 L14,7 L9,1 Z\"></path></marker></defs><defs><marker id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-sequencenumber\" refX=\"15\" refY=\"15\" markerWidth=\"60\" markerHeight=\"40\" orient=\"auto\"><circle cx=\"15\" cy=\"15\" r=\"6\"></circle></marker></defs><defs><marker id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-solidTopArrowHead\" refX=\"7.9\" refY=\"7.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 8 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-solidBottomArrowHead\" refX=\"7.9\" refY=\"0.75\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 0 L 0 8 z\"></path></marker></defs><defs><marker id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-stickTopArrowHead\" refX=\"7.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 7 7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><defs><marker id=\"diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-stickBottomArrowHead\" refX=\"7.5\" refY=\"0\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto-start-reverse\"><path d=\"M 0 7 L 7 0\" stroke=\"black\" stroke-width=\"1.5\" fill=\"none\"></path></marker></defs><g data-et=\"control-structure\" data-id=\"i7\"><line x1=\"64\" y1=\"259\" x2=\"629\" y2=\"259\" class=\"loopLine\"></line><line x1=\"629\" y1=\"259\" x2=\"629\" y2=\"396\" class=\"loopLine\"></line><line x1=\"64\" y1=\"396\" x2=\"629\" y2=\"396\" class=\"loopLine\"></line><line x1=\"64\" y1=\"259\" x2=\"64\" y2=\"396\" class=\"loopLine\"></line><polygon points=\"64,259 114,259 114,272 105.6,279 64,279\" class=\"labelBox\"></polygon><text x=\"89\" y=\"272\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"labelText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">loop</text><text x=\"371.5\" y=\"277\" text-anchor=\"middle\" class=\"loopText\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\"><tspan x=\"371.5\">[page = 1, 2, 3 ... until a short page]</tspan></text></g><text x=\"345\" y=\"80\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">GET /search-configs/ENROLLMENT</text><line x1=\"76\" y1=\"111\" x2=\"614\" y2=\"111\" class=\"messageLine0\" data-et=\"message\" data-id=\"i0\" data-from=\"App\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-arrowhead)\" style=\"fill: none;\"></line><text x=\"348\" y=\"126\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">Tables and fields this config can use</text><line x1=\"617\" y1=\"157\" x2=\"79\" y2=\"157\" class=\"messageLine1\" data-et=\"message\" data-id=\"i1\" data-from=\"API\" data-to=\"App\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"345\" y=\"172\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /criterias (Group_ID = DOCS-GRP1)</text><line x1=\"76\" y1=\"203\" x2=\"614\" y2=\"203\" class=\"messageLine0\" data-et=\"message\" data-id=\"i2\" data-from=\"App\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-arrowhead)\" style=\"fill: none;\"></line><text x=\"348\" y=\"218\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">criteria_Key</text><line x1=\"617\" y1=\"249\" x2=\"79\" y2=\"249\" class=\"messageLine1\" data-et=\"message\" data-id=\"i3\" data-from=\"API\" data-to=\"App\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"345\" y=\"309\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">POST /search (criteria_Key, selectedFields, page, pageCount 750)</text><line x1=\"76\" y1=\"340\" x2=\"614\" y2=\"340\" class=\"messageLine0\" data-et=\"message\" data-id=\"i5\" data-from=\"App\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-arrowhead)\" style=\"fill: none;\"></line><text x=\"348\" y=\"355\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">fieldMapping and results</text><line x1=\"617\" y1=\"386\" x2=\"79\" y2=\"386\" class=\"messageLine1\" data-et=\"message\" data-id=\"i6\" data-from=\"API\" data-to=\"App\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-arrowhead)\" style=\"stroke-dasharray: 3, 3; fill: none;\"></line><text x=\"345\" y=\"411\" text-anchor=\"middle\" dominant-baseline=\"middle\" alignment-baseline=\"middle\" class=\"messageText\" dy=\"1em\" style=\"font-family: &quot;Redocly Mermaid Sans&quot;, Arial, &quot;Liberation Sans&quot;, Arimo, Helvetica, &quot;Redocly Mermaid CJK&quot;, sans-serif; font-size: 16px; font-weight: 400;\">DELETE /criterias/{criteriaKey}</text><line x1=\"76\" y1=\"442\" x2=\"614\" y2=\"442\" class=\"messageLine0\" data-et=\"message\" data-id=\"i8\" data-from=\"App\" data-to=\"API\" stroke-width=\"2\" stroke=\"none\" marker-end=\"url(#diagram-722bac6648ef6c35e3d51def69c0bf2c7485704fb497c696c4a5e7f7ba4ee685-arrowhead)\" style=\"fill: none;\"></line></svg>"},"children":["sequenceDiagram\n  participant App as Your system\n  participant API as VBAPI\n  App->>API: GET /search-configs/ENROLLMENT\n  API-->>App: Tables and fields this config can use\n  App->>API: POST /criterias (Group_ID = DOCS-GRP1)\n  API-->>App: criteria_Key\n  loop page = 1, 2, 3 ... until a short page\n    App->>API: POST /search (criteria_Key, selectedFields, page, pageCount 750)\n    API-->>App: fieldMapping and results\n  end\n  App->>API: DELETE /criterias/{criteriaKey}\n"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The samples read your credentials from environment variables:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The samples read your credentials from environment variables, so nothing secret is written into code. Set them in the terminal you run the samples from:"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"PowerShell","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"powershell","header":{"controls":{"copy":{}}},"source":"$env:VBAPI_BASE_URL    = \"https://vbapi.vbasoftware.com/vbasoftware\"\n$env:VBAPI_API_KEY     = \"your-api-key\"\n$env:VBAPI_CLIENT_ID   = \"your-client-id\"\n$env:VBAPI_CLIENT_CODE = \"your-client-code\"\n$env:VBAPI_DATABASE    = \"YOUR_DATABASE\"\n$env:VBAPI_USERNAME    = \"your-api-username\"\n$env:VBAPI_PASSWORD    = \"your-api-password\"\n$env:VBAPI_USER_AGENT  = \"YourCompany-Integration/1.0\"\n","lang":"powershell"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"bash","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"export VBAPI_BASE_URL=\"https://vbapi.vbasoftware.com/vbasoftware\"\nexport VBAPI_API_KEY=\"your-api-key\"\nexport VBAPI_CLIENT_ID=\"your-client-id\"\nexport VBAPI_CLIENT_CODE=\"your-client-code\"\nexport VBAPI_DATABASE=\"YOUR_DATABASE\"\nexport VBAPI_USERNAME=\"your-api-username\"\nexport VBAPI_PASSWORD=\"your-api-password\"\nexport VBAPI_USER_AGENT=\"YourCompany-Integration/1.0\"\n","lang":"bash"},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In production code, load these from your secrets manager instead."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"steps","__idx":2},"children":["Steps"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"1-check-the-searchconfig","__idx":3},"children":["1. Check the SearchConfig"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/openapi/vbasoftware/vbasoftware.api/search-config/getsearchconfig"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /search-configs/{searchConfigId}"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A SearchConfig defines which tables and columns a search can use. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ENROLLMENT"]}," config includes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Members"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SubEnrollment"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MemEnrollmentPlan"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Groups"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Plans"]},", and other enrollment tables (see the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/developer-portal/reference/search-config-reference"},"children":["SearchConfig reference"]},"). SearchConfigs can differ between databases, so the samples first confirm that every column they select exists in yours. The API also rejects a search that selects a table or column the config does not include."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/SearchExtract.cs","language":"csharp","header":{"controls":{"copy":{}}},"lang":"csharp","source":"        var config = (await api.GetAsync($\"/search-configs/{SearchConfigId}\")).Data!;\n        var available = config[\"tableConfigs\"]!.AsArray()\n            .SelectMany(t => t![\"fields\"]!.AsArray().Select(f => $\"{t[\"name\"]}.{f![\"name\"]}\".ToLowerInvariant()))\n            .ToHashSet();\n        var missing = SelectedFields\n            .Select(f => $\"{f.tableName}.{f.columnName}\")\n            .Where(name => !available.Contains(name.ToLowerInvariant()))\n            .ToList();\n        if (missing.Count > 0)\n            throw new InvalidOperationException($\"Not in {SearchConfigId} for this database: {string.Join(\", \", missing)}\");\n        "},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/search_extract.py","language":"python","header":{"controls":{"copy":{}}},"lang":"python","source":"    config = api.get(f\"/search-configs/{SEARCH_CONFIG_ID}\").data\n    available = {(t[\"name\"].lower(), f[\"name\"].lower()) for t in config[\"tableConfigs\"] for f in t[\"fields\"]}\n    missing = [f\"{f['tableName']}.{f['columnName']}\" for f in SELECTED_FIELDS\n               if (f[\"tableName\"].lower(), f[\"columnName\"].lower()) not in available]\n    if missing:\n        raise SystemExit(f\"Not in {SEARCH_CONFIG_ID} for this database: {', '.join(missing)}\")\n    "},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"TypeScript","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/searchExtract.ts","language":"typescript","header":{"controls":{"copy":{}}},"lang":"typescript","source":"  const config = (await api.get(`/search-configs/${SEARCH_CONFIG_ID}`)).data;\n  const available = new Set<string>(\n    config.tableConfigs.flatMap((t: any) => t.fields.map((f: any) => `${t.name}.${f.name}`.toLowerCase())),\n  );\n  const missing = SELECTED_FIELDS.map((f) => `${f.tableName}.${f.columnName}`).filter((name) => !available.has(name.toLowerCase()));\n  if (missing.length > 0) throw new Error(`Not in ${SEARCH_CONFIG_ID} for this database: ${missing.join(\", \")}`);\n  "},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The samples select these columns:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Table"},"children":["Table"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Column"},"children":["Column"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Sorted"},"children":["Sorted"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Members"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Subscriber_ID"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1st"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Members"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Member_Seq"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2nd"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Members"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["First_Name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Members"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Last_Name"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MemEnrollmentPlan"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Plan_ID"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3rd"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MemEnrollmentPlan"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Plan_Start"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["4th"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MemEnrollmentPlan"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Plan_End"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sort on columns that together identify a row, as here, so the order is the same on every page you request."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"2-create-the-criteria","__idx":4},"children":["2. Create the criteria"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/openapi/vbasoftware/vbasoftware.api/criteria/createcriteria"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /criterias"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is the one write in the playbook: it saves a criteria record that filters on the group. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["temporary: true"]}," keeps it out of the saved searches list. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["criteria_Operator"]}," and the values are combined into the search's filter, so use a plain comparison such as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["="]}," and set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["criteria_Data_Type"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["string"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["date"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["number"]},"."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/SearchExtract.cs","language":"csharp","header":{"controls":{"copy":{}}},"lang":"csharp","source":"        var criteria = new\n        {\n            searchConfigId = SearchConfigId,\n            criteria_Type = SearchConfigId,\n            description = $\"DOCS extract for group {GroupId}\",\n            temporary = true, // not kept as a saved search\n            criteriaDetails = new[]\n            {\n                new\n                {\n                    criteria_Seq = 1,\n                    criteria_Table = \"SubEnrollment\",\n                    criteria_Column = \"Group_ID\",\n                    criteria_Data_Type = \"string\",\n                    criteria_Operator = \"=\",\n                    criteria_From_Value = GroupId,\n                },\n            },\n        };\n        var criteriaKey = (await api.PostAsync(\"/criterias\", criteria)).Data![\"criteria_Key\"]!.GetValue<int>();\n        "},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/search_extract.py","language":"python","header":{"controls":{"copy":{}}},"lang":"python","source":"    criteria = {\n        \"searchConfigId\": SEARCH_CONFIG_ID,\n        \"criteria_Type\": SEARCH_CONFIG_ID,\n        \"description\": f\"DOCS extract for group {GROUP_ID}\",\n        \"temporary\": True,  # not kept as a saved search\n        \"criteriaDetails\": [\n            {\n                \"criteria_Seq\": 1,\n                \"criteria_Table\": \"SubEnrollment\",\n                \"criteria_Column\": \"Group_ID\",\n                \"criteria_Data_Type\": \"string\",\n                \"criteria_Operator\": \"=\",\n                \"criteria_From_Value\": GROUP_ID,\n            }\n        ],\n    }\n    criteria_key = api.post(\"/criterias\", criteria).data[\"criteria_Key\"]\n    "},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"TypeScript","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/searchExtract.ts","language":"typescript","header":{"controls":{"copy":{}}},"lang":"typescript","source":"  const criteria = {\n    searchConfigId: SEARCH_CONFIG_ID,\n    criteria_Type: SEARCH_CONFIG_ID,\n    description: `DOCS extract for group ${GROUP_ID}`,\n    temporary: true, // not kept as a saved search\n    criteriaDetails: [\n      {\n        criteria_Seq: 1,\n        criteria_Table: \"SubEnrollment\",\n        criteria_Column: \"Group_ID\",\n        criteria_Data_Type: \"string\",\n        criteria_Operator: \"=\",\n        criteria_From_Value: GROUP_ID,\n      },\n    ],\n  };\n  const criteriaKey: number = (await api.post(\"/criterias\", criteria)).data.criteria_Key;\n  "},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The request body, as JSON:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"searchConfigId\": \"ENROLLMENT\",\n  \"criteria_Type\": \"ENROLLMENT\",\n  \"description\": \"DOCS extract for group DOCS-GRP1\",\n  \"temporary\": true,\n  \"criteriaDetails\": [\n    {\n      \"criteria_Seq\": 1,\n      \"criteria_Table\": \"SubEnrollment\",\n      \"criteria_Column\": \"Group_ID\",\n      \"criteria_Data_Type\": \"string\",\n      \"criteria_Operator\": \"=\",\n      \"criteria_From_Value\": \"DOCS-GRP1\"\n    }\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Save from the response:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data.criteria_Key"]}," (used in steps 3 and 5)."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"3-page-through-the-results","__idx":5},"children":["3. Page through the results"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/openapi/vbasoftware/vbasoftware.api/search-request/searchrequest"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /search"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["criteria_Key"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["searchConfigId"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["selectedFields"]}," are required. Paging works like this:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page"]}," starts at 1. Page 0 is accepted but also returns the first page, so a loop that starts at 0 reads the first page twice."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageCount"]}," is the number of rows per page. It defaults to 750, and the API rejects values above 750."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Stop when a page returns fewer rows than ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageCount"]},". That is the last page."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Pagination"]}," response header is only accurate when the request sets ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_Result_Details: true"]},". Without it, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TotalCount"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["0"]},". The samples do not need totals, so they do not set it."]}]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/SearchExtract.cs","language":"csharp","header":{"controls":{"copy":{}}},"lang":"csharp","source":"            var total = 0;\n            await using (var writer = new StreamWriter(OutputFile))\n            {\n                for (var page = 1; ; page++) // pages start at 1; page 0 also returns the first page, so never start at 0\n                {\n                    var result = (await api.PostAsync(\"/search\", new\n                    {\n                        criteria_Key = criteriaKey,\n                        searchConfigId = SearchConfigId,\n                        selectedFields = SelectedFields,\n                        page,\n                        pageCount = PageCount,\n                    })).Data!;\n                    var rows = WritePage(writer, result, includeHeader: page == 1);\n                    total += rows;\n                    if (rows < PageCount)\n                        break; // a short page is the last page\n                }\n            }\n            Console.WriteLine($\"Wrote {total} rows to {OutputFile}\");\n            "},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/search_extract.py","language":"python","header":{"controls":{"copy":{}}},"lang":"python","source":"        total = 0\n        with OUTPUT_FILE.open(\"w\", newline=\"\", encoding=\"utf-8\") as output:\n            writer = csv.writer(output)\n            page = 1  # pages start at 1; page 0 also returns the first page, so never start at 0\n            while True:\n                result = api.post(\"/search\", {\n                    \"criteria_Key\": criteria_key,\n                    \"searchConfigId\": SEARCH_CONFIG_ID,\n                    \"selectedFields\": SELECTED_FIELDS,\n                    \"page\": page,\n                    \"pageCount\": PAGE_COUNT,\n                }).data\n                rows = write_page(writer, result, include_header=(page == 1))\n                total += rows\n                if rows < PAGE_COUNT:\n                    break  # a short page is the last page\n                page += 1\n        print(f\"Wrote {total} rows to {OUTPUT_FILE}\")\n        "},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"TypeScript","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/searchExtract.ts","language":"typescript","header":{"controls":{"copy":{}}},"lang":"typescript","source":"    let total = 0;\n    const output = createWriteStream(OUTPUT_FILE, { encoding: \"utf-8\" });\n    for (let page = 1; ; page++) {\n      // pages start at 1; page 0 also returns the first page, so never start at 0\n      const result = (\n        await api.post<SearchResult>(\"/search\", {\n          criteria_Key: criteriaKey,\n          searchConfigId: SEARCH_CONFIG_ID,\n          selectedFields: SELECTED_FIELDS,\n          page,\n          pageCount: PAGE_COUNT,\n        })\n      ).data;\n      const rows = writePage(output, result, page === 1);\n      total += rows;\n      if (rows < PAGE_COUNT) break; // a short page is the last page\n    }\n    await new Promise<void>((resolve, reject) => output.end((error?: Error | null) => (error ? reject(error) : resolve())));\n    console.log(`Wrote ${total} rows to ${OUTPUT_FILE}`);\n    "},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each call sends a body like this one:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"criteria_Key\": 12345,\n  \"searchConfigId\": \"ENROLLMENT\",\n  \"selectedFields\": [\n    { \"tableName\": \"Members\", \"columnName\": \"Subscriber_ID\", \"sortPriority\": 1 },\n    { \"tableName\": \"Members\", \"columnName\": \"Member_Seq\", \"sortPriority\": 2 },\n    { \"tableName\": \"Members\", \"columnName\": \"First_Name\" },\n    { \"tableName\": \"Members\", \"columnName\": \"Last_Name\" },\n    { \"tableName\": \"MemEnrollmentPlan\", \"columnName\": \"Plan_ID\", \"sortPriority\": 3 },\n    { \"tableName\": \"MemEnrollmentPlan\", \"columnName\": \"Plan_Start\", \"sortPriority\": 4 },\n    { \"tableName\": \"MemEnrollmentPlan\", \"columnName\": \"Plan_End\" }\n  ],\n  \"page\": 1,\n  \"pageCount\": 750\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"4-write-the-rows-to-csv","__idx":6},"children":["4. Write the rows to CSV"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Each result has ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fieldMapping"]},", which names the table and column for each position, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["results"]},", an array of rows where each row is an array of values. Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fieldMapping[].columnIndex"]}," to find each column's value in a row rather than assuming the rows follow the order of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["selectedFields"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Example response (illustrative; field values are fake, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search_SQL_Statement"]}," is shortened):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"data\": {\n    \"searchConfigId\": \"ENROLLMENT\",\n    \"criteria_Key\": 12345,\n    \"search_SQL_Statement\": \"SELECT ...\",\n    \"fieldMapping\": [\n      { \"tableName\": \"Members\", \"columnName\": \"Subscriber_ID\", \"columnIndex\": 0 },\n      { \"tableName\": \"Members\", \"columnName\": \"Member_Seq\", \"columnIndex\": 1 },\n      { \"tableName\": \"Members\", \"columnName\": \"First_Name\", \"columnIndex\": 2 },\n      { \"tableName\": \"Members\", \"columnName\": \"Last_Name\", \"columnIndex\": 3 },\n      { \"tableName\": \"MemEnrollmentPlan\", \"columnName\": \"Plan_ID\", \"columnIndex\": 4 },\n      { \"tableName\": \"MemEnrollmentPlan\", \"columnName\": \"Plan_Start\", \"columnIndex\": 5 },\n      { \"tableName\": \"MemEnrollmentPlan\", \"columnName\": \"Plan_End\", \"columnIndex\": 6 }\n    ],\n    \"results\": [\n      [\"DOCS-0001\", \"01\", \"Sample\", \"Member\", \"DOCS-PLN1\", \"2030-01-01T00:00:00\", null],\n      [\"DOCS-0001\", \"02\", \"Sample\", \"Dependent\", \"DOCS-PLN1\", \"2030-01-01T00:00:00\", null]\n    ]\n  },\n  \"error\": null,\n  \"debug\": { \"activityID\": \"00000000-0000-0000-0000-000000000000\" }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The samples write one header row (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Members.Subscriber_ID"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Members.Member_Seq"]},", and so on) and then each row, quoting values that contain commas, quotes, or line breaks:"]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/SearchExtract.cs","language":"csharp","header":{"controls":{"copy":{}}},"lang":"csharp","source":"    static int WritePage(StreamWriter writer, JsonNode result, bool includeHeader)\n    {\n        // fieldMapping says which row position holds each column.\n        var columns = result[\"fieldMapping\"]!.AsArray()\n            .OrderBy(m => m![\"columnIndex\"]!.GetValue<int>())\n            .ToList();\n        if (includeHeader)\n            writer.WriteLine(string.Join(\",\", columns.Select(m => Csv($\"{m![\"tableName\"]}.{m[\"columnName\"]}\"))));\n        var rows = result[\"results\"]!.AsArray();\n        foreach (var row in rows)\n            writer.WriteLine(string.Join(\",\", columns.Select(m => Csv(row![m![\"columnIndex\"]!.GetValue<int>()]?.ToString()))));\n        return rows.Count;\n    }\n\n    static string Csv(string? value) =>\n        value is null ? \"\" : value.IndexOfAny(new[] { ',', '\"', '\\n', '\\r' }) >= 0 ? $\"\\\"{value.Replace(\"\\\"\", \"\\\"\\\"\")}\\\"\" : value;\n    "},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/search_extract.py","language":"python","header":{"controls":{"copy":{}}},"lang":"python","source":"def write_page(writer, result, include_header):\n    \"\"\"Write one page of search results. fieldMapping says which row position holds each column.\"\"\"\n    columns = sorted(result[\"fieldMapping\"], key=lambda m: m[\"columnIndex\"])\n    if include_header:\n        writer.writerow(f\"{m['tableName']}.{m['columnName']}\" for m in columns)\n    for row in result[\"results\"]:\n        writer.writerow(row[m[\"columnIndex\"]] for m in columns)\n    return len(result[\"results\"])"},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"TypeScript","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/searchExtract.ts","language":"typescript","header":{"controls":{"copy":{}}},"lang":"typescript","source":"function csv(value: unknown): string {\n  if (value === null || value === undefined) return \"\";\n  const text = String(value);\n  return /[\",\\r\\n]/.test(text) ? `\"${text.replace(/\"/g, '\"\"')}\"` : text;\n}\n\n/** Write one page of search results. fieldMapping says which row position holds each column. */\nfunction writePage(output: WriteStream, result: SearchResult, includeHeader: boolean): number {\n  const columns = [...result.fieldMapping].sort((a, b) => a.columnIndex - b.columnIndex);\n  if (includeHeader) output.write(columns.map((m) => csv(`${m.tableName}.${m.columnName}`)).join(\",\") + \"\\n\");\n  for (const row of result.results) output.write(columns.map((m) => csv(row[m.columnIndex])).join(\",\") + \"\\n\");\n  return result.results.length;\n}"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"5-delete-the-criteria","__idx":7},"children":["5. Delete the criteria"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/openapi/vbasoftware/vbasoftware.api/criteria/deletecriteria"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE /criterias/{criteriaKey}"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The samples delete the criteria they created, even if the search fails part-way. A delete returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["204"]}," with no body."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"C#","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/SearchExtract.cs","language":"csharp","header":{"controls":{"copy":{}}},"lang":"csharp","source":"            await api.DeleteAsync($\"/criterias/{criteriaKey}\");\n            "},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"Python","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/search_extract.py","language":"python","header":{"controls":{"copy":{}}},"lang":"python","source":"        api.delete(f\"/criterias/{criteria_key}\")\n        "},"children":[]}]},{"$$mdtype":"Tag","name":"TabItemFragment","attributes":{"label":"TypeScript","disable":false},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"file":"../../_samples/playbooks/search-extract/searchExtract.ts","language":"typescript","header":{"controls":{"copy":{}}},"lang":"typescript","source":"    await api.delete(`/criterias/${criteriaKey}`);\n    "},"children":[]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/openapi/vbasoftware/vbasoftware.api/criteria/cleanupcriteria"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /cleanup-criteria"]}]}," is a different, administrative operation: it trims all temporary criteria in the database down to the count set in the Control Panel and returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["202"]},". An extract does not need it."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"verify-the-result","__idx":8},"children":["Verify the result"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open the CSV and check that the header row lists the seven columns and that the row count printed by the sample matches what you expect for the group. To get the total from the API, run one search with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["include_Result_Details: true"]}," and an explicit ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageCount"]},", and read ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TotalCount"]}," from the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Pagination"]}," header."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-errors","__idx":9},"children":["Common errors"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Symptom"},"children":["Symptom"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Likely cause"},"children":["Likely cause"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Fix"},"children":["Fix"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["\"For API calls, PageCount cannot exceed 750 records\""]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageCount"]}," is above 750."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use 750 or less."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["\"Table: ... is not valid for this search\" or \"Column: ... is not valid for this search\""]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A selected field is not in the SearchConfig for your database."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check the config with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /search-configs/{searchConfigId}"]}," and pick columns it lists."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["\"Field List sent in Search Request may not be empty\""]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["selectedFields"]}," is empty."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Select at least one column."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]},", or \"Criteria Key ... provided in the Search Request is invalid\""]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["criteria_Key"]}," does not exist, for example because it was deleted."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create the criteria again."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The first page appears twice in the file"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The loop started at page 0."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Start at page 1."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Contacting support"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Send VBA support:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["debug.activityID"]}," from the response"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the date and time of the call, with time zone"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the method and path, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /claim-batches"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the full ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]}," object from the response"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["the request body, with passwords, tokens, and personal data removed"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Never send your password, API key, or tokens. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/developer-portal/help/support"},"children":["Support and escalation"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"variations","__idx":10},"children":["Variations"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["No criteria record:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SearchRequest"]}," also accepts the filter inline. Send ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["criteria_Key: 0"]}," and put the criteria details in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["criterias"]},"; the API then skips the criteria lookup and passes the inline details to the search. This avoids the write in step 2, but needs confirmation against the live API before you rely on it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Check the filter:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/openapi/vbasoftware/vbasoftware.api/criteria/getcriteriawhereclause"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /criterias-where-clause/{criteriaKey}"]}]}," returns the filter that a saved criteria produces, which helps when a search returns no rows."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Only active enrollments:"]}," add a second criteria detail on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MemEnrollmentPlan.Plan_End"]}," (for example, empty or after today) joined with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["criteria_AndOr"]},". The right definition of \"active\" for your clients needs SME confirmation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Safe to re-run?"]}," Yes. The search only reads data, and each run creates and deletes its own criteria. Each run overwrites the CSV file."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"download","__idx":11},"children":["Download"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The full runnable samples are in the portal repository under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["_samples/playbooks/search-extract/"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SearchExtract.cs"]}," (run with the shared C# runner as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SearchExtractPlaybook"]},"), ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["search_extract.py"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["searchExtract.ts"]},". Each uses the shared client helper for its language and writes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enrollments.csv"]}," in the current folder."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related","__idx":12},"children":["Related"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Concepts: ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/developer-portal/concepts/search"},"children":["Search API"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/developer-portal/concepts/pagination-and-sorting"},"children":["Pagination and sorting"]},", ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/developer-portal/concepts/rate-limits-and-performance"},"children":["Rate limits and performance"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Reference: ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/developer-portal/reference/search-config-reference"},"children":["SearchConfig reference"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Previous playbook: ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/developer-portal/playbooks/disenroll-member"},"children":["Disenroll a member or group"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ask the AI: \"Using the Extract data with the Search API playbook, write a TypeScript function that exports all claims for one group to CSV.\""]}]}]},"headings":[{"value":"Extract data with the Search API","id":"extract-data-with-the-search-api","depth":1},{"value":"How it fits together","id":"how-it-fits-together","depth":2},{"value":"Steps","id":"steps","depth":2},{"value":"1. Check the SearchConfig","id":"1-check-the-searchconfig","depth":3},{"value":"2. Create the criteria","id":"2-create-the-criteria","depth":3},{"value":"3. Page through the results","id":"3-page-through-the-results","depth":3},{"value":"4. Write the rows to CSV","id":"4-write-the-rows-to-csv","depth":3},{"value":"5. Delete the criteria","id":"5-delete-the-criteria","depth":3},{"value":"Verify the result","id":"verify-the-result","depth":2},{"value":"Common errors","id":"common-errors","depth":2},{"value":"Variations","id":"variations","depth":2},{"value":"Download","id":"download","depth":2},{"value":"Related","id":"related","depth":2}],"frontmatter":{"title":"Extract data with the Search API","description":"Export enrollment rows for one group to a CSV file with VBAPI's Search API, paging safely through large result sets.","seo":{"title":"Extract data with the Search API"}},"lastModified":"2026-10-26T21:09:33.694Z","pagePropGetterError":{"message":"","name":""}},"slug":"/developer-portal/playbooks/search-extract","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}