trustgraph/docs/api.html
cybermaggedon 8eac99c182
Update API docs for 2.4 (#960)
- Update API specs for 2.4 (#960)
- Update API docs
- Regenerate Python docs
2026-05-28 17:55:51 +01:00

3879 lines
881 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf8" />
<title>TrustGraph API Gateway</title>
<!-- needed for adaptive design -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
padding: 0;
margin: 0;
}
</style>
<script src="https://cdn.redocly.com/redoc/v2.5.1/bundles/redoc.standalone.js"></script><style data-styled="true" data-styled-version="6.4.1">.eQypqI{width:calc(100% - 40%);padding:0 40px;}/*!sc*/
@media print,screen and (max-width: 75rem){.eQypqI{width:100%;padding:40px 40px;}}/*!sc*/
.jmTlOw{width:calc(100% - 40%);padding:0 40px;}/*!sc*/
@media print,screen and (max-width: 75rem){.jmTlOw{width:100%;padding:0px 40px;}}/*!sc*/
data-styled.g5[id="sc-hKgHXU"]{content:"eQypqI,jmTlOw,"}/*!sc*/
.bKZuAK{padding:40px 0;}/*!sc*/
.bKZuAK:last-child{min-height:calc(100vh + 1px);}/*!sc*/
.bKZuAK>.bKZuAK:last-child{min-height:initial;}/*!sc*/
@media print,screen and (max-width: 75rem){.bKZuAK{padding:0;}}/*!sc*/
.hxxgNd{padding:40px 0;position:relative;}/*!sc*/
.hxxgNd:last-child{min-height:calc(100vh + 1px);}/*!sc*/
.hxxgNd>.hxxgNd:last-child{min-height:initial;}/*!sc*/
@media print,screen and (max-width: 75rem){.hxxgNd{padding:0;}}/*!sc*/
.hxxgNd:not(:last-of-type):after{position:absolute;bottom:0;width:100%;display:block;content:'';border-bottom:1px solid rgba(0, 0, 0, 0.2);}/*!sc*/
data-styled.g6[id="sc-eCsseJ"]{content:"bKZuAK,hxxgNd,"}/*!sc*/
.kWQHAp{width:40%;color:#ffffff;background-color:#263238;padding:0 40px;}/*!sc*/
@media print,screen and (max-width: 75rem){.kWQHAp{width:100%;padding:40px 40px;}}/*!sc*/
data-styled.g7[id="sc-jSgsbC"]{content:"kWQHAp,"}/*!sc*/
.jYdWFY{background-color:#263238;}/*!sc*/
data-styled.g8[id="sc-gKscir"]{content:"jYdWFY,"}/*!sc*/
.cOCikg{display:flex;width:100%;padding:0;}/*!sc*/
@media print,screen and (max-width: 75rem){.cOCikg{flex-direction:column;}}/*!sc*/
data-styled.g9[id="sc-iBPUmU"]{content:"cOCikg,"}/*!sc*/
.edtrWC{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#333333;}/*!sc*/
data-styled.g10[id="sc-fubEtJ"]{content:"edtrWC,"}/*!sc*/
.bwjsfx{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;margin:0 0 20px;}/*!sc*/
data-styled.g11[id="sc-pGbXd"]{content:"bwjsfx,"}/*!sc*/
.bedHjN{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.27em;line-height:1.6em;color:#333333;}/*!sc*/
data-styled.g12[id="sc-jrAIFA"]{content:"bedHjN,"}/*!sc*/
.hgYAAF{color:#ffffff;}/*!sc*/
data-styled.g13[id="sc-kEjckD"]{content:"hgYAAF,"}/*!sc*/
.iFTCOQ{border-bottom:1px solid rgba(38, 50, 56, 0.3);margin:1em 0 1em 0;color:rgba(38, 50, 56, 0.5);font-weight:normal;text-transform:uppercase;font-size:0.929em;line-height:20px;}/*!sc*/
data-styled.g14[id="sc-iqHZue"]{content:"iFTCOQ,"}/*!sc*/
.itgZBm{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
.itgZBm:before{content:'';width:15px;height:15px;background-size:contain;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');opacity:0.5;visibility:hidden;display:inline-block;vertical-align:middle;}/*!sc*/
h1:hover>.itgZBm::before,h2:hover>.itgZBm::before,.itgZBm:hover::before{visibility:visible;}/*!sc*/
data-styled.g15[id="sc-crrrsl"]{content:"itgZBm,"}/*!sc*/
.cWjMmC{height:18px;width:18px;min-width:18px;vertical-align:middle;float:right;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
.dHiXwH{height:1.3em;width:1.3em;min-width:1.3em;vertical-align:middle;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
.iTiSfO{height:18px;width:18px;min-width:18px;vertical-align:middle;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
.idFXFs{height:1.5em;width:1.5em;min-width:1.5em;vertical-align:middle;float:left;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
.idFXFs polygon{fill:#1d8127;}/*!sc*/
.djPqdM{height:1.5em;width:1.5em;min-width:1.5em;vertical-align:middle;float:left;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
.djPqdM polygon{fill:#d41f1c;}/*!sc*/
.dvMtUQ{height:20px;width:20px;min-width:20px;vertical-align:middle;float:right;transition:transform 0.2s ease-out;transform:rotateZ(0);}/*!sc*/
.dvMtUQ polygon{fill:white;}/*!sc*/
data-styled.g16[id="sc-dQoBM"]{content:"cWjMmC,dHiXwH,iTiSfO,idFXFs,djPqdM,dvMtUQ,"}/*!sc*/
.DPwQp{border-left:1px solid #7c7cbb;box-sizing:border-box;position:relative;padding:10px 10px 10px 0;}/*!sc*/
@media screen and (max-width: 50rem){.DPwQp{display:block;overflow:hidden;}}/*!sc*/
tr:first-of-type>.DPwQp,tr.last>.DPwQp{border-left-width:0;background-position:top left;background-repeat:no-repeat;background-size:1px 100%;}/*!sc*/
tr:first-of-type>.DPwQp{background-image:linear-gradient(
to bottom,
transparent 0%,
transparent 22px,
#7c7cbb 22px,
#7c7cbb 100%
);}/*!sc*/
tr.last>.DPwQp{background-image:linear-gradient(
to bottom,
#7c7cbb 0%,
#7c7cbb 22px,
transparent 22px,
transparent 100%
);}/*!sc*/
tr.last+tr>.DPwQp{border-left-color:transparent;}/*!sc*/
tr.last:first-child>.DPwQp{background:none;border-left-color:transparent;}/*!sc*/
data-styled.g19[id="sc-hBFaCF"]{content:"DPwQp,"}/*!sc*/
.hUqyua{vertical-align:top;line-height:20px;white-space:nowrap;font-size:13px;font-family:Courier,monospace;}/*!sc*/
.hUqyua.deprecated{text-decoration:line-through;color:#707070;}/*!sc*/
data-styled.g21[id="sc-fFubTW"]{content:"hUqyua,"}/*!sc*/
.gNQdZ{border-bottom:1px solid #9fb4be;padding:10px 0;width:75%;box-sizing:border-box;}/*!sc*/
tr.expanded .gNQdZ{border-bottom:none;}/*!sc*/
@media screen and (max-width: 50rem){.gNQdZ{padding:0 20px;border-bottom:none;border-left:1px solid #7c7cbb;}tr.last>.gNQdZ{border-left:none;}}/*!sc*/
data-styled.g22[id="sc-bkAakD"]{content:"gNQdZ,"}/*!sc*/
.iNiPzl{color:#7c7cbb;font-family:Courier,monospace;margin-right:10px;}/*!sc*/
.iNiPzl::before{content:'';display:inline-block;vertical-align:middle;width:10px;height:1px;background:#7c7cbb;}/*!sc*/
.iNiPzl::after{content:'';display:inline-block;vertical-align:middle;width:1px;background:#7c7cbb;height:7px;}/*!sc*/
data-styled.g23[id="sc-idOkdQ"]{content:"iNiPzl,"}/*!sc*/
.juzVUC{border-collapse:separate;border-radius:3px;font-size:14px;border-spacing:0;width:100%;}/*!sc*/
.juzVUC >tr{vertical-align:middle;}/*!sc*/
@media screen and (max-width: 50rem){.juzVUC{display:block;}.juzVUC >tr,.juzVUC >tbody>tr{display:block;}}/*!sc*/
@media screen and (max-width: 50rem) and (-ms-high-contrast:none){.juzVUC td{float:left;width:100%;}}/*!sc*/
.juzVUC .sc-dIUiux,.juzVUC .sc-dIUiux .sc-dIUiux .sc-dIUiux,.juzVUC .sc-dIUiux .sc-dIUiux .sc-dIUiux .sc-dIUiux .sc-dIUiux{margin:1em;margin-right:0;background:#fafafa;}/*!sc*/
.juzVUC .sc-dIUiux .sc-dIUiux,.juzVUC .sc-dIUiux .sc-dIUiux .sc-dIUiux .sc-dIUiux,.juzVUC .sc-dIUiux .sc-dIUiux .sc-dIUiux .sc-dIUiux .sc-dIUiux .sc-dIUiux{background:#ffffff;}/*!sc*/
data-styled.g25[id="sc-hHfrpe"]{content:"juzVUC,"}/*!sc*/
.hqsuVf >ul{list-style:none;padding:0;margin:0;margin:0 -5px;}/*!sc*/
.hqsuVf >ul >li{padding:5px 10px;display:inline-block;background-color:#11171a;border-bottom:1px solid rgba(0, 0, 0, 0.5);cursor:pointer;text-align:center;outline:none;color:#ccc;margin:0 5px 5px 5px;border:1px solid #07090b;border-radius:5px;min-width:60px;font-size:0.9em;font-weight:bold;}/*!sc*/
.hqsuVf >ul >li.react-tabs__tab--selected{color:#333333;background:#ffffff;}/*!sc*/
.hqsuVf >ul >li.react-tabs__tab--selected:focus{outline:auto;}/*!sc*/
.hqsuVf >ul >li:only-child{flex:none;min-width:100px;}/*!sc*/
.hqsuVf >ul >li.tab-success{color:#1d8127;}/*!sc*/
.hqsuVf >ul >li.tab-redirect{color:#ffa500;}/*!sc*/
.hqsuVf >ul >li.tab-info{color:#87ceeb;}/*!sc*/
.hqsuVf >ul >li.tab-error{color:#d41f1c;}/*!sc*/
.hqsuVf >.react-tabs__tab-panel{background:#11171a;}/*!sc*/
.hqsuVf >.react-tabs__tab-panel>div,.hqsuVf >.react-tabs__tab-panel>pre{padding:20px;margin:0;}/*!sc*/
.hqsuVf >.react-tabs__tab-panel>div>pre{padding:0;}/*!sc*/
data-styled.g31[id="sc-cxFMaL"]{content:"hqsuVf,"}/*!sc*/
.iNuSsz code[class*='language-'],.iNuSsz pre[class*='language-']{text-shadow:0 -0.1em 0.2em black;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;}/*!sc*/
@media print{.iNuSsz code[class*='language-'],.iNuSsz pre[class*='language-']{text-shadow:none;}}/*!sc*/
.iNuSsz pre[class*='language-']{padding:1em;margin:0.5em 0;overflow:auto;}/*!sc*/
.iNuSsz .token.comment,.iNuSsz .token.prolog,.iNuSsz .token.doctype,.iNuSsz .token.cdata{color:hsl(30, 20%, 50%);}/*!sc*/
.iNuSsz .token.punctuation{opacity:0.7;}/*!sc*/
.iNuSsz .namespace{opacity:0.7;}/*!sc*/
.iNuSsz .token.property,.iNuSsz .token.tag,.iNuSsz .token.number,.iNuSsz .token.constant,.iNuSsz .token.symbol{color:#4a8bb3;}/*!sc*/
.iNuSsz .token.boolean{color:#e64441;}/*!sc*/
.iNuSsz .token.selector,.iNuSsz .token.attr-name,.iNuSsz .token.string,.iNuSsz .token.char,.iNuSsz .token.builtin,.iNuSsz .token.inserted{color:#a0fbaa;}/*!sc*/
.iNuSsz .token.selector+a,.iNuSsz .token.attr-name+a,.iNuSsz .token.string+a,.iNuSsz .token.char+a,.iNuSsz .token.builtin+a,.iNuSsz .token.inserted+a,.iNuSsz .token.selector+a:visited,.iNuSsz .token.attr-name+a:visited,.iNuSsz .token.string+a:visited,.iNuSsz .token.char+a:visited,.iNuSsz .token.builtin+a:visited,.iNuSsz .token.inserted+a:visited{color:#4ed2ba;text-decoration:underline;}/*!sc*/
.iNuSsz .token.property.string{color:white;}/*!sc*/
.iNuSsz .token.operator,.iNuSsz .token.entity,.iNuSsz .token.url,.iNuSsz .token.variable{color:hsl(40, 90%, 60%);}/*!sc*/
.iNuSsz .token.atrule,.iNuSsz .token.attr-value,.iNuSsz .token.keyword{color:hsl(350, 40%, 70%);}/*!sc*/
.iNuSsz .token.regex,.iNuSsz .token.important{color:#e90;}/*!sc*/
.iNuSsz .token.important,.iNuSsz .token.bold{font-weight:bold;}/*!sc*/
.iNuSsz .token.italic{font-style:italic;}/*!sc*/
.iNuSsz .token.entity{cursor:help;}/*!sc*/
.iNuSsz .token.deleted{color:red;}/*!sc*/
data-styled.g33[id="sc-iJuXkV"]{content:"iNuSsz,"}/*!sc*/
.ldPDIU{opacity:0.7;transition:opacity 0.3s ease;text-align:right;}/*!sc*/
.ldPDIU:focus-within{opacity:1;}/*!sc*/
.ldPDIU >button{background-color:transparent;border:0;color:inherit;padding:2px 10px;font-family:Roboto,sans-serif;font-size:14px;line-height:1.5em;cursor:pointer;outline:0;}/*!sc*/
.ldPDIU >button :hover,.ldPDIU >button :focus{background:rgba(255, 255, 255, 0.1);}/*!sc*/
data-styled.g34[id="sc-giIpqw"]{content:"ldPDIU,"}/*!sc*/
.bsUDpT{position:relative;}/*!sc*/
data-styled.g38[id="sc-kLgmGd"]{content:"bsUDpT,"}/*!sc*/
.lgCKWg{position:absolute;pointer-events:none;z-index:1;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:8px;margin:auto;text-align:center;}/*!sc*/
.lgCKWg polyline{color:white;}/*!sc*/
data-styled.g39[id="sc-iktELE"]{content:"lgCKWg,"}/*!sc*/
.ekMQOb{box-sizing:border-box;min-width:100px;outline:none;display:inline-block;border-radius:2px;border:1px solid rgba(38, 50, 56, 0.5);vertical-align:bottom;padding:2px 0px 2px 6px;position:relative;width:auto;background:white;color:#263238;font-family:Montserrat,sans-serif;font-size:0.929em;line-height:1.5em;cursor:pointer;transition:border 0.25s ease,color 0.25s ease,box-shadow 0.25s ease;}/*!sc*/
.ekMQOb label{box-sizing:border-box;min-width:100px;outline:none;display:inline-block;font-family:Montserrat,sans-serif;color:#333333;vertical-align:bottom;width:auto;text-transform:none;padding:0 22px 0 4px;font-size:0.929em;line-height:1.5em;font-family:inherit;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;}/*!sc*/
.ekMQOb .dropdown-select{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;border:none;appearance:none;cursor:pointer;color:#333333;line-height:inherit;font-family:inherit;}/*!sc*/
.ekMQOb:hover,.ekMQOb:focus-within{border:1px solid #32329f;color:#32329f;box-shadow:0px 0px 0px 1px #32329f;}/*!sc*/
data-styled.g40[id="sc-jJEKGn"]{content:"ekMQOb,"}/*!sc*/
.eBDHRN{margin-left:10px;text-transform:none;font-size:0.929em;color:black;}/*!sc*/
data-styled.g42[id="sc-gWHgjU"]{content:"eBDHRN,"}/*!sc*/
.jtfGmi{font-family:Roboto,sans-serif;font-weight:400;line-height:1.5em;}/*!sc*/
.jtfGmi p:last-child{margin-bottom:0;}/*!sc*/
.jtfGmi h1{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#32329f;margin-top:0;}/*!sc*/
.jtfGmi h2{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;}/*!sc*/
.jtfGmi code{color:#e53935;background-color:rgba(38, 50, 56, 0.05);font-family:Courier,monospace;border-radius:2px;border:1px solid rgba(38, 50, 56, 0.1);padding:0 5px;font-size:13px;font-weight:400;word-break:break-word;}/*!sc*/
.jtfGmi pre{font-family:Courier,monospace;white-space:pre;background-color:#11171a;color:white;padding:20px;overflow-x:auto;line-height:normal;border-radius:0;border:1px solid rgba(38, 50, 56, 0.1);}/*!sc*/
.jtfGmi pre code{background-color:transparent;color:white;padding:0;}/*!sc*/
.jtfGmi pre code:before,.jtfGmi pre code:after{content:none;}/*!sc*/
.jtfGmi blockquote{margin:0;margin-bottom:1em;padding:0 15px;color:#777;border-left:4px solid #ddd;}/*!sc*/
.jtfGmi img{max-width:100%;box-sizing:content-box;}/*!sc*/
.jtfGmi ul,.jtfGmi ol{padding-left:2em;margin:0;margin-bottom:1em;}/*!sc*/
.jtfGmi ul ul,.jtfGmi ol ul,.jtfGmi ul ol,.jtfGmi ol ol{margin-bottom:0;margin-top:0;}/*!sc*/
.jtfGmi table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all;border-collapse:collapse;border-spacing:0;margin-top:1.5em;margin-bottom:1.5em;}/*!sc*/
.jtfGmi table tr{background-color:#fff;border-top:1px solid #ccc;}/*!sc*/
.jtfGmi table tr:nth-child(2n){background-color:#fafafa;}/*!sc*/
.jtfGmi table th,.jtfGmi table td{padding:6px 13px;border:1px solid #ddd;}/*!sc*/
.jtfGmi table th{text-align:left;font-weight:bold;}/*!sc*/
.jtfGmi .share-link{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
.jtfGmi .share-link:before{content:'';width:15px;height:15px;background-size:contain;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');opacity:0.5;visibility:hidden;display:inline-block;vertical-align:middle;}/*!sc*/
.jtfGmi h1:hover>.share-link::before,.jtfGmi h2:hover>.share-link::before,.jtfGmi .share-link:hover::before{visibility:visible;}/*!sc*/
.jtfGmi a{text-decoration:auto;color:#32329f;}/*!sc*/
.jtfGmi a:visited{color:#32329f;}/*!sc*/
.jtfGmi a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
.dyntKg{font-family:Roboto,sans-serif;font-weight:400;line-height:1.5em;}/*!sc*/
.dyntKg p:last-child{margin-bottom:0;}/*!sc*/
.dyntKg p:first-child{margin-top:0;}/*!sc*/
.dyntKg p:last-child{margin-bottom:0;}/*!sc*/
.dyntKg h1{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#32329f;margin-top:0;}/*!sc*/
.dyntKg h2{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;}/*!sc*/
.dyntKg code{color:#e53935;background-color:rgba(38, 50, 56, 0.05);font-family:Courier,monospace;border-radius:2px;border:1px solid rgba(38, 50, 56, 0.1);padding:0 5px;font-size:13px;font-weight:400;word-break:break-word;}/*!sc*/
.dyntKg pre{font-family:Courier,monospace;white-space:pre;background-color:#11171a;color:white;padding:20px;overflow-x:auto;line-height:normal;border-radius:0;border:1px solid rgba(38, 50, 56, 0.1);}/*!sc*/
.dyntKg pre code{background-color:transparent;color:white;padding:0;}/*!sc*/
.dyntKg pre code:before,.dyntKg pre code:after{content:none;}/*!sc*/
.dyntKg blockquote{margin:0;margin-bottom:1em;padding:0 15px;color:#777;border-left:4px solid #ddd;}/*!sc*/
.dyntKg img{max-width:100%;box-sizing:content-box;}/*!sc*/
.dyntKg ul,.dyntKg ol{padding-left:2em;margin:0;margin-bottom:1em;}/*!sc*/
.dyntKg ul ul,.dyntKg ol ul,.dyntKg ul ol,.dyntKg ol ol{margin-bottom:0;margin-top:0;}/*!sc*/
.dyntKg table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all;border-collapse:collapse;border-spacing:0;margin-top:1.5em;margin-bottom:1.5em;}/*!sc*/
.dyntKg table tr{background-color:#fff;border-top:1px solid #ccc;}/*!sc*/
.dyntKg table tr:nth-child(2n){background-color:#fafafa;}/*!sc*/
.dyntKg table th,.dyntKg table td{padding:6px 13px;border:1px solid #ddd;}/*!sc*/
.dyntKg table th{text-align:left;font-weight:bold;}/*!sc*/
.dyntKg .share-link{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
.dyntKg .share-link:before{content:'';width:15px;height:15px;background-size:contain;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');opacity:0.5;visibility:hidden;display:inline-block;vertical-align:middle;}/*!sc*/
.dyntKg h1:hover>.share-link::before,.dyntKg h2:hover>.share-link::before,.dyntKg .share-link:hover::before{visibility:visible;}/*!sc*/
.dyntKg a{text-decoration:auto;color:#32329f;}/*!sc*/
.dyntKg a:visited{color:#32329f;}/*!sc*/
.dyntKg a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
.eBjiEo{font-family:Roboto,sans-serif;font-weight:400;line-height:1.5em;}/*!sc*/
.eBjiEo p:last-child{margin-bottom:0;}/*!sc*/
.eBjiEo p:first-child{margin-top:0;}/*!sc*/
.eBjiEo p:last-child{margin-bottom:0;}/*!sc*/
.eBjiEo p{display:inline-block;}/*!sc*/
.eBjiEo h1{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#32329f;margin-top:0;}/*!sc*/
.eBjiEo h2{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;}/*!sc*/
.eBjiEo code{color:#e53935;background-color:rgba(38, 50, 56, 0.05);font-family:Courier,monospace;border-radius:2px;border:1px solid rgba(38, 50, 56, 0.1);padding:0 5px;font-size:13px;font-weight:400;word-break:break-word;}/*!sc*/
.eBjiEo pre{font-family:Courier,monospace;white-space:pre;background-color:#11171a;color:white;padding:20px;overflow-x:auto;line-height:normal;border-radius:0;border:1px solid rgba(38, 50, 56, 0.1);}/*!sc*/
.eBjiEo pre code{background-color:transparent;color:white;padding:0;}/*!sc*/
.eBjiEo pre code:before,.eBjiEo pre code:after{content:none;}/*!sc*/
.eBjiEo blockquote{margin:0;margin-bottom:1em;padding:0 15px;color:#777;border-left:4px solid #ddd;}/*!sc*/
.eBjiEo img{max-width:100%;box-sizing:content-box;}/*!sc*/
.eBjiEo ul,.eBjiEo ol{padding-left:2em;margin:0;margin-bottom:1em;}/*!sc*/
.eBjiEo ul ul,.eBjiEo ol ul,.eBjiEo ul ol,.eBjiEo ol ol{margin-bottom:0;margin-top:0;}/*!sc*/
.eBjiEo table{display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all;border-collapse:collapse;border-spacing:0;margin-top:1.5em;margin-bottom:1.5em;}/*!sc*/
.eBjiEo table tr{background-color:#fff;border-top:1px solid #ccc;}/*!sc*/
.eBjiEo table tr:nth-child(2n){background-color:#fafafa;}/*!sc*/
.eBjiEo table th,.eBjiEo table td{padding:6px 13px;border:1px solid #ddd;}/*!sc*/
.eBjiEo table th{text-align:left;font-weight:bold;}/*!sc*/
.eBjiEo .share-link{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
.eBjiEo .share-link:before{content:'';width:15px;height:15px;background-size:contain;background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');opacity:0.5;visibility:hidden;display:inline-block;vertical-align:middle;}/*!sc*/
.eBjiEo h1:hover>.share-link::before,.eBjiEo h2:hover>.share-link::before,.eBjiEo .share-link:hover::before{visibility:visible;}/*!sc*/
.eBjiEo a{text-decoration:auto;color:#32329f;}/*!sc*/
.eBjiEo a:visited{color:#32329f;}/*!sc*/
.eBjiEo a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
data-styled.g43[id="sc-cBNeAB"]{content:"jtfGmi,dyntKg,eBjiEo,"}/*!sc*/
.hynizp{display:inline;}/*!sc*/
data-styled.g44[id="sc-cittYi"]{content:"hynizp,"}/*!sc*/
.hiQxbu{position:relative;}/*!sc*/
data-styled.g45[id="sc-jcVbNL"]{content:"hiQxbu,"}/*!sc*/
.fRRakq:hover>.sc-giIpqw{opacity:1;}/*!sc*/
data-styled.g50[id="sc-cTkvqA"]{content:"fRRakq,"}/*!sc*/
.cCicSb{font-family:Courier,monospace;font-size:13px;white-space:pre;contain:content;overflow-x:auto;}/*!sc*/
.cCicSb .redoc-json code>.collapser{display:none;pointer-events:none;}/*!sc*/
.cCicSb .callback-function{color:gray;}/*!sc*/
.cCicSb .collapser:after{content:'-';cursor:pointer;}/*!sc*/
.cCicSb .collapsed>.collapser:after{content:'+';cursor:pointer;}/*!sc*/
.cCicSb .ellipsis:after{content:' … ';}/*!sc*/
.cCicSb .collapsible{margin-left:2em;}/*!sc*/
.cCicSb .hoverable{padding-top:1px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-radius:2px;}/*!sc*/
.cCicSb .hovered{background-color:rgba(235, 238, 249, 1);}/*!sc*/
.cCicSb .collapser{background-color:transparent;border:0;color:#fff;font-family:Courier,monospace;font-size:13px;padding-right:6px;padding-left:6px;padding-top:0;padding-bottom:0;display:flex;align-items:center;justify-content:center;width:15px;height:15px;position:absolute;top:4px;left:-1.5em;cursor:default;user-select:none;-webkit-user-select:none;padding:2px;}/*!sc*/
.cCicSb .collapser:focus{outline-color:#fff;outline-style:dotted;outline-width:1px;}/*!sc*/
.cCicSb ul{list-style-type:none;padding:0px;margin:0px 0px 0px 26px;}/*!sc*/
.cCicSb li{position:relative;display:block;}/*!sc*/
.cCicSb .hoverable{display:inline-block;}/*!sc*/
.cCicSb .selected{outline-style:solid;outline-width:1px;outline-style:dotted;}/*!sc*/
.cCicSb .collapsed>.collapsible{display:none;}/*!sc*/
.cCicSb .ellipsis{display:none;}/*!sc*/
.cCicSb .collapsed>.ellipsis{display:inherit;}/*!sc*/
data-styled.g51[id="sc-jNMdgd"]{content:"cCicSb,"}/*!sc*/
.ilXydl{padding:0.9em;background-color:rgba(38,50,56,0.4);margin:0 0 10px 0;display:block;font-family:Montserrat,sans-serif;font-size:0.929em;line-height:1.5em;}/*!sc*/
data-styled.g52[id="sc-dOSQqJ"]{content:"ilXydl,"}/*!sc*/
.fLqWfi{font-family:Montserrat,sans-serif;font-size:12px;position:absolute;z-index:1;top:-11px;left:12px;font-weight:600;color:rgba(255,255,255,0.7);}/*!sc*/
data-styled.g53[id="sc-bBrNAk"]{content:"fLqWfi,"}/*!sc*/
.jyrVDw{position:relative;}/*!sc*/
data-styled.g54[id="sc-cOahfn"]{content:"jyrVDw,"}/*!sc*/
.dMpNQv{margin:0 0 10px 0;display:block;background-color:rgba(38,50,56,0.4);border:none;padding:0.9em 1.6em 0.9em 0.9em;box-shadow:none;}/*!sc*/
.dMpNQv label{color:#ffffff;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:1em;text-transform:none;border:none;}/*!sc*/
.dMpNQv:hover,.dMpNQv:focus-within{border:none;box-shadow:none;background-color:rgba(38,50,56,0.7);}/*!sc*/
data-styled.g55[id="sc-AzeoO"]{content:"dMpNQv,"}/*!sc*/
.icbUjL{margin-top:15px;}/*!sc*/
data-styled.g57[id="sc-hTZjHc"]{content:"icbUjL,"}/*!sc*/
.bvJPfa.deprecated span.property-name{text-decoration:line-through;color:#707070;}/*!sc*/
.bvJPfa button{background-color:transparent;border:0;outline:0;font-size:13px;font-family:Courier,monospace;cursor:pointer;padding:0;color:#333333;}/*!sc*/
.bvJPfa button:focus{font-weight:600;}/*!sc*/
.bvJPfa .sc-dQoBM{height:1.1em;width:1.1em;}/*!sc*/
.bvJPfa .sc-dQoBM polygon{fill:#666;}/*!sc*/
data-styled.g58[id="sc-jgHDmf"]{content:"bvJPfa,"}/*!sc*/
.gCMUGw{vertical-align:middle;font-size:13px;line-height:20px;}/*!sc*/
data-styled.g59[id="sc-gTgAvG"]{content:"gCMUGw,"}/*!sc*/
.dCeeDp{color:rgba(102,102,102,0.9);}/*!sc*/
data-styled.g60[id="sc-laROWl"]{content:"dCeeDp,"}/*!sc*/
.cxjEEA{color:#666;}/*!sc*/
data-styled.g61[id="sc-iNqMfM"]{content:"cxjEEA,"}/*!sc*/
.jJMDiT{color:#666;word-break:break-word;}/*!sc*/
data-styled.g62[id="sc-jeGQnC"]{content:"jJMDiT,"}/*!sc*/
.egFobb{color:#d41f1c;font-size:0.9em;font-weight:normal;margin-left:20px;line-height:1;}/*!sc*/
data-styled.g63[id="sc-eJMOEj"]{content:"egFobb,"}/*!sc*/
.jzGNYG{border-radius:2px;word-break:break-word;background-color:rgba(51,51,51,0.05);color:rgba(51,51,51,0.9);padding:0 5px;border:1px solid rgba(51,51,51,0.1);font-family:Courier,monospace;}/*!sc*/
.sc-lcukLb+.sc-lcukLb{margin-left:0;}/*!sc*/
data-styled.g67[id="sc-lcukLb"]{content:"jzGNYG,"}/*!sc*/
.gAOGaI{border-radius:2px;background-color:rgba(104,104,207,0.05);color:rgba(50,50,159,0.9);margin:0 5px;padding:0 5px;border:1px solid rgba(50,50,159,0.1);}/*!sc*/
.sc-clsJvZ+.sc-clsJvZ{margin-left:0;}/*!sc*/
data-styled.g69[id="sc-clsJvZ"]{content:"gAOGaI,"}/*!sc*/
.ewkFZw:after{content:' and ';font-weight:normal;}/*!sc*/
.ewkFZw:last-child:after{content:none;}/*!sc*/
.ewkFZw a{text-decoration:auto;color:#32329f;}/*!sc*/
.ewkFZw a:visited{color:#32329f;}/*!sc*/
.ewkFZw a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
data-styled.g82[id="sc-hOqsyU"]{content:"ewkFZw,"}/*!sc*/
.gXVZLC{white-space:nowrap;}/*!sc*/
.gXVZLC:after{content:' or ';white-space:pre;}/*!sc*/
.gXVZLC:last-child:after,.gXVZLC:only-child:after{content:none;}/*!sc*/
.gXVZLC a{text-decoration:auto;color:#32329f;}/*!sc*/
.gXVZLC a:visited{color:#32329f;}/*!sc*/
.gXVZLC a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
data-styled.g83[id="sc-dtwqPB"]{content:"gXVZLC,"}/*!sc*/
.hnzXSU{flex:1 1 auto;cursor:pointer;}/*!sc*/
data-styled.g84[id="sc-dacGni"]{content:"hnzXSU,"}/*!sc*/
.jnRUlI{width:75%;text-overflow:ellipsis;border-radius:4px;overflow:hidden;}/*!sc*/
@media screen and (max-width: 50rem){.jnRUlI{margin-top:10px;}}/*!sc*/
data-styled.g85[id="sc-jUEocL"]{content:"jnRUlI,"}/*!sc*/
.htSlhJ{display:inline-block;margin:0;}/*!sc*/
data-styled.g86[id="sc-jQbHUc"]{content:"htSlhJ,"}/*!sc*/
.bhICnb{width:100%;display:flex;margin:1em 0;flex-direction:row;}/*!sc*/
@media screen and (max-width: 50rem){.bhICnb{flex-direction:column;}}/*!sc*/
data-styled.g87[id="sc-fvhGkJ"]{content:"bhICnb,"}/*!sc*/
.eSPXsI{margin-top:0;margin-bottom:0.5em;}/*!sc*/
data-styled.g93[id="sc-ctaZPk"]{content:"eSPXsI,"}/*!sc*/
.kpDuUN::before{content:'|';display:inline-block;opacity:0.5;width:15px;text-align:center;}/*!sc*/
.kpDuUN:last-child::after{display:none;}/*!sc*/
data-styled.g95[id="sc-bsiqDO"]{content:"kpDuUN,"}/*!sc*/
.kjXtVa{overflow:hidden;}/*!sc*/
data-styled.g96[id="sc-gInsaR"]{content:"kjXtVa,"}/*!sc*/
.eNyNMf{display:flex;flex-wrap:wrap;margin-left:-15px;}/*!sc*/
data-styled.g97[id="sc-euMpks"]{content:"eNyNMf,"}/*!sc*/
.kdqpyX{width:9ex;display:inline-block;height:13px;line-height:13px;background-color:#333;border-radius:3px;background-repeat:no-repeat;background-position:6px 4px;font-size:7px;font-family:Verdana,sans-serif;color:white;text-transform:uppercase;text-align:center;font-weight:bold;vertical-align:middle;margin-right:6px;margin-top:2px;}/*!sc*/
.kdqpyX.get{background-color:#2F8132;}/*!sc*/
.kdqpyX.post{background-color:#186FAF;}/*!sc*/
.kdqpyX.put{background-color:#95507c;}/*!sc*/
.kdqpyX.options{background-color:#947014;}/*!sc*/
.kdqpyX.patch{background-color:#bf581d;}/*!sc*/
.kdqpyX.delete{background-color:#cc3333;}/*!sc*/
.kdqpyX.basic{background-color:#707070;}/*!sc*/
.kdqpyX.link{background-color:#07818F;}/*!sc*/
.kdqpyX.head{background-color:#A23DAD;}/*!sc*/
.kdqpyX.hook{background-color:#32329f;}/*!sc*/
.kdqpyX.schema{background-color:#707070;}/*!sc*/
data-styled.g101[id="sc-XhXdA"]{content:"kdqpyX,"}/*!sc*/
.eqhvhc{margin:0;padding:0;}/*!sc*/
.eqhvhc:first-child{padding-bottom:32px;}/*!sc*/
.sc-ikPCzd .sc-ikPCzd{font-size:0.929em;}/*!sc*/
.eGBeQN{margin:0;padding:0;display:none;}/*!sc*/
.eGBeQN:first-child{padding-bottom:32px;}/*!sc*/
.sc-ikPCzd .sc-ikPCzd{font-size:0.929em;}/*!sc*/
data-styled.g102[id="sc-ikPCzd"]{content:"eqhvhc,eGBeQN,"}/*!sc*/
.hNMAOR{list-style:none inside none;overflow:hidden;text-overflow:ellipsis;padding:0;}/*!sc*/
data-styled.g103[id="sc-tYrig"]{content:"hNMAOR,"}/*!sc*/
.kYHuni{cursor:pointer;color:#333333;margin:0;padding:12.5px 20px;display:flex;justify-content:space-between;font-family:Montserrat,sans-serif;font-size:0.929em;text-transform:none;background-color:#fafafa;}/*!sc*/
.kYHuni:hover{color:#32329f;background-color:#e1e1e1;}/*!sc*/
.kYHuni .sc-dQoBM{height:1.5em;width:1.5em;}/*!sc*/
.kYHuni .sc-dQoBM polygon{fill:#333333;}/*!sc*/
.ehmZgs{cursor:pointer;color:#333333;margin:0;padding:12.5px 20px;display:flex;justify-content:space-between;font-family:Montserrat,sans-serif;background-color:#fafafa;}/*!sc*/
.ehmZgs:hover{color:#32329f;background-color:#ededed;}/*!sc*/
.ehmZgs .sc-dQoBM{height:1.5em;width:1.5em;}/*!sc*/
.ehmZgs .sc-dQoBM polygon{fill:#333333;}/*!sc*/
data-styled.g104[id="sc-biBsFP"]{content:"kYHuni,ehmZgs,"}/*!sc*/
.dYJaHY{display:inline-block;vertical-align:middle;width:calc(100% - 38px);overflow:hidden;text-overflow:ellipsis;}/*!sc*/
data-styled.g105[id="sc-eHfQNO"]{content:"dYJaHY,"}/*!sc*/
.icnaqS{font-size:0.8em;margin-top:10px;text-align:center;position:fixed;width:260px;bottom:0;background:#fafafa;}/*!sc*/
.icnaqS a,.icnaqS a:visited,.icnaqS a:hover{color:#333333!important;padding:5px 0;border-top:1px solid #e1e1e1;text-decoration:none;display:flex;align-items:center;justify-content:center;}/*!sc*/
.icnaqS img{width:15px;margin-right:5px;}/*!sc*/
@media screen and (max-width: 50rem){.icnaqS{width:100%;}}/*!sc*/
data-styled.g106[id="sc-hzMLOJ"]{content:"icnaqS,"}/*!sc*/
.gnyOsi{cursor:pointer;position:relative;margin-bottom:5px;}/*!sc*/
data-styled.g112[id="sc-fXozIE"]{content:"gnyOsi,"}/*!sc*/
.kmRXcZ{font-family:Courier,monospace;margin-left:10px;flex:1;overflow-x:hidden;text-overflow:ellipsis;}/*!sc*/
data-styled.g113[id="sc-FyhMp"]{content:"kmRXcZ,"}/*!sc*/
.eJFCKx{outline:0;color:inherit;width:100%;text-align:left;cursor:pointer;padding:10px 30px 10px 20px;border-radius:4px 4px 0 0;background-color:#11171a;display:flex;white-space:nowrap;align-items:center;border:1px solid transparent;border-bottom:0;transition:border-color 0.25s ease;}/*!sc*/
.eJFCKx ..sc-FyhMp{color:#ffffff;}/*!sc*/
.eJFCKx:focus{box-shadow:inset 0 2px 2px rgba(0, 0, 0, 0.45),0 2px 0 rgba(128, 128, 128, 0.25);}/*!sc*/
data-styled.g114[id="sc-jXkukm"]{content:"eJFCKx,"}/*!sc*/
.kcqnuN{font-size:0.929em;line-height:20px;background-color:#186FAF;color:#ffffff;padding:3px 10px;text-transform:uppercase;font-family:Montserrat,sans-serif;margin:0;}/*!sc*/
.iykXxP{font-size:0.929em;line-height:20px;background-color:#2F8132;color:#ffffff;padding:3px 10px;text-transform:uppercase;font-family:Montserrat,sans-serif;margin:0;}/*!sc*/
data-styled.g115[id="sc-eFucnX"]{content:"kcqnuN,iykXxP,"}/*!sc*/
.AnL{position:absolute;width:100%;z-index:100;background:#fafafa;color:#263238;box-sizing:border-box;box-shadow:0 0 6px rgba(0, 0, 0, 0.33);overflow:hidden;border-bottom-left-radius:4px;border-bottom-right-radius:4px;transition:all 0.25s ease;visibility:hidden;transform:translateY(-50%) scaleY(0);}/*!sc*/
data-styled.g116[id="sc-fmlIYk"]{content:"AnL,"}/*!sc*/
.gjZMty{padding:10px;}/*!sc*/
data-styled.g117[id="sc-ljRaAR"]{content:"gjZMty,"}/*!sc*/
.eFxVeO{padding:5px;border:1px solid #ccc;background:#fff;word-break:break-all;color:#32329f;}/*!sc*/
.eFxVeO >span{color:#333333;}/*!sc*/
data-styled.g118[id="sc-jmhDzS"]{content:"eFxVeO,"}/*!sc*/
.eEdthm{text-transform:lowercase;margin-left:0;line-height:1.5em;}/*!sc*/
data-styled.g119[id="sc-dUrlDD"]{content:"eEdthm,"}/*!sc*/
.ciHfuN{display:block;border:0;width:100%;text-align:left;padding:10px;border-radius:2px;margin-bottom:4px;line-height:1.5em;cursor:pointer;color:#1d8127;background-color:rgba(29,129,39,0.07);}/*!sc*/
.ciHfuN:focus{outline:auto #1d8127;}/*!sc*/
.iagvZz{display:block;border:0;width:100%;text-align:left;padding:10px;border-radius:2px;margin-bottom:4px;line-height:1.5em;cursor:pointer;color:#d41f1c;background-color:rgba(212,31,28,0.07);}/*!sc*/
.iagvZz:focus{outline:auto #d41f1c;}/*!sc*/
.JFbul{display:block;border:0;width:100%;text-align:left;padding:10px;border-radius:2px;margin-bottom:4px;line-height:1.5em;cursor:pointer;color:#d41f1c;background-color:rgba(212,31,28,0.07);cursor:default;}/*!sc*/
.JFbul:focus{outline:auto #d41f1c;}/*!sc*/
.JFbul::before{content:"—";font-weight:bold;width:1.5em;text-align:center;display:inline-block;vertical-align:top;}/*!sc*/
.JFbul:focus{outline:0;}/*!sc*/
.gGsvUR{display:block;border:0;width:100%;text-align:left;padding:10px;border-radius:2px;margin-bottom:4px;line-height:1.5em;cursor:pointer;color:#87ceeb;background-color:rgba(135,206,235,0.1);cursor:default;}/*!sc*/
.gGsvUR:focus{outline:auto #87ceeb;}/*!sc*/
.gGsvUR::before{content:"—";font-weight:bold;width:1.5em;text-align:center;display:inline-block;vertical-align:top;}/*!sc*/
.gGsvUR:focus{outline:0;}/*!sc*/
data-styled.g121[id="sc-cbDJdZ"]{content:"ciHfuN,iagvZz,JFbul,gGsvUR,"}/*!sc*/
.mtsUp{vertical-align:top;}/*!sc*/
data-styled.g124[id="sc-fWPeRB"]{content:"mtsUp,"}/*!sc*/
.ihqrCS{font-size:1.3em;padding:0.2em 0;margin:3em 0 1.1em;color:#333333;font-weight:normal;}/*!sc*/
data-styled.g125[id="sc-fHYzZk"]{content:"ihqrCS,"}/*!sc*/
.iTRatv{margin-bottom:30px;}/*!sc*/
data-styled.g130[id="sc-iGcuFr"]{content:"iTRatv,"}/*!sc*/
.iDYPDd{user-select:none;width:20px;height:20px;align-self:center;display:flex;flex-direction:column;color:#32329f;}/*!sc*/
data-styled.g131[id="sc-irlPNa"]{content:"iDYPDd,"}/*!sc*/
.lkswgW{width:260px;background-color:#fafafa;overflow:hidden;display:flex;flex-direction:column;backface-visibility:hidden;height:100vh;position:sticky;position:-webkit-sticky;top:0;}/*!sc*/
@media screen and (max-width: 50rem){.lkswgW{position:fixed;z-index:20;width:100%;background:#fafafa;display:none;}}/*!sc*/
@media print{.lkswgW{display:none;}}/*!sc*/
data-styled.g132[id="sc-eWvQxi"]{content:"lkswgW,"}/*!sc*/
.fsqnbI{outline:none;user-select:none;background-color:#f2f2f2;color:#32329f;display:none;cursor:pointer;position:fixed;right:20px;z-index:100;border-radius:50%;box-shadow:0 0 20px rgba(0, 0, 0, 0.3);bottom:44px;width:60px;height:60px;padding:0 20px;}/*!sc*/
@media screen and (max-width: 50rem){.fsqnbI{display:flex;}}/*!sc*/
.fsqnbI svg{color:#0065FB;}/*!sc*/
@media print{.fsqnbI{display:none;}}/*!sc*/
data-styled.g133[id="sc-kUbhZP"]{content:"fsqnbI,"}/*!sc*/
.iABphV{font-family:Roboto,sans-serif;font-size:14px;font-weight:400;line-height:1.5em;color:#333333;display:flex;position:relative;text-align:left;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;text-rendering:optimizeSpeed!important;tap-highlight-color:rgba(0, 0, 0, 0);text-size-adjust:100%;}/*!sc*/
.iABphV *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(255, 255, 255, 0);}/*!sc*/
data-styled.g134[id="sc-dwcwXc"]{content:"iABphV,"}/*!sc*/
.JaJkD{z-index:1;position:relative;overflow:hidden;width:calc(100% - 260px);contain:layout;}/*!sc*/
@media print,screen and (max-width: 50rem){.JaJkD{width:100%;}}/*!sc*/
data-styled.g135[id="sc-jtHOzJ"]{content:"JaJkD,"}/*!sc*/
.dQcVAt{background:#263238;position:absolute;top:0;bottom:0;right:0;width:calc((100% - 260px) * 0.4);}/*!sc*/
@media print,screen and (max-width: 75rem){.dQcVAt{display:none;}}/*!sc*/
data-styled.g136[id="sc-elsZMO"]{content:"dQcVAt,"}/*!sc*/
.heVKiz{padding:5px 0;}/*!sc*/
data-styled.g137[id="sc-kiYrpv"]{content:"heVKiz,"}/*!sc*/
.gyVKdy{width:calc(100% - 40px);box-sizing:border-box;margin:0 20px;padding:5px 10px 5px 20px;border:0;border-bottom:1px solid #e1e1e1;font-family:Roboto,sans-serif;font-weight:bold;font-size:13px;color:#333333;background-color:transparent;outline:none;}/*!sc*/
data-styled.g138[id="sc-cKZGmI"]{content:"gyVKdy,"}/*!sc*/
.eIwqum{position:absolute;left:20px;height:1.8em;width:0.9em;}/*!sc*/
.eIwqum path{fill:#333333;}/*!sc*/
data-styled.g139[id="sc-iIEXPp"]{content:"eIwqum,"}/*!sc*/
</style>
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
</head>
<body>
<div id="redoc"><div class="sc-dwcwXc iABphV redoc-wrap"><div class="sc-eWvQxi lkswgW menu-content" style="top:0px;height:calc(100vh - 0px)"><div role="search" class="sc-kiYrpv heVKiz"><svg class="sc-iIEXPp eIwqum search-icon" version="1.1" viewBox="0 0 1000 1000" x="0px" xmlns="http://www.w3.org/2000/svg" y="0px"><path d="M968.2,849.4L667.3,549c83.9-136.5,66.7-317.4-51.7-435.6C477.1-25,252.5-25,113.9,113.4c-138.5,138.3-138.5,362.6,0,501C219.2,730.1,413.2,743,547.6,666.5l301.9,301.4c43.6,43.6,76.9,14.9,104.2-12.4C981,928.3,1011.8,893,968.2,849.4z M524.5,522c-88.9,88.7-233,88.7-321.8,0c-88.9-88.7-88.9-232.6,0-321.3c88.9-88.7,233-88.7,321.8,0C613.4,289.4,613.4,433.3,524.5,522z"></path></svg><input placeholder="Search..." aria-label="Search" type="text" class="sc-cKZGmI gyVKdy search-input" value=""/></div><div class="sc-kLgmGd bsUDpT scrollbar-container undefined"><ul role="menu" class="sc-ikPCzd eqhvhc"><li tabindex="0" depth="1" data-item-id="section/Overview" role="menuitem" aria-label="Overview" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Overview" class="sc-eHfQNO dYJaHY">Overview</span></label></li><li tabindex="0" depth="1" data-item-id="section/Authentication" role="menuitem" aria-label="Authentication" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Authentication" class="sc-eHfQNO dYJaHY">Authentication</span></label></li><li tabindex="0" depth="1" data-item-id="section/Service-Tiers" role="menuitem" aria-label="Service Tiers" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Service Tiers" class="sc-eHfQNO dYJaHY">Service Tiers</span></label></li><li tabindex="0" depth="1" data-item-id="section/Field-Naming" role="menuitem" aria-label="Field Naming" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Field Naming" class="sc-eHfQNO dYJaHY">Field Naming</span></label></li><li tabindex="0" depth="1" data-item-id="section/Error-Responses" role="menuitem" aria-label="Error Responses" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Error Responses" class="sc-eHfQNO dYJaHY">Error Responses</span></label></li><li tabindex="0" depth="1" data-item-id="tag/Config" role="menuitem" aria-label="Config" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Config" class="sc-eHfQNO dYJaHY">Config</span><svg class="sc-dQoBM cWjMmC" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></label><ul class="sc-ikPCzd eGBeQN"><li tabindex="0" depth="2" data-item-id="tag/Config/operation/configService" role="menuitem" aria-label="Configuration service (workspace-scoped)" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Configuration service (workspace-scoped)</span></label></li></ul></li><li tabindex="0" depth="1" data-item-id="tag/Flow" role="menuitem" aria-label="Flow" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Flow" class="sc-eHfQNO dYJaHY">Flow</span><svg class="sc-dQoBM cWjMmC" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></label><ul class="sc-ikPCzd eGBeQN"><li tabindex="0" depth="2" data-item-id="tag/Flow/operation/flowService" role="menuitem" aria-label="Flow lifecycle and blueprint management (workspace-scoped)" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Flow lifecycle and blueprint management (workspace-scoped)</span></label></li></ul></li><li tabindex="0" depth="1" data-item-id="tag/Librarian" role="menuitem" aria-label="Librarian" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Librarian" class="sc-eHfQNO dYJaHY">Librarian</span><svg class="sc-dQoBM cWjMmC" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></label><ul class="sc-ikPCzd eGBeQN"><li tabindex="0" depth="2" data-item-id="tag/Librarian/operation/librarianService" role="menuitem" aria-label="Document library management (workspace-scoped)" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Document library management (workspace-scoped)</span></label></li></ul></li><li tabindex="0" depth="1" data-item-id="tag/Knowledge" role="menuitem" aria-label="Knowledge" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Knowledge" class="sc-eHfQNO dYJaHY">Knowledge</span><svg class="sc-dQoBM cWjMmC" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></label><ul class="sc-ikPCzd eGBeQN"><li tabindex="0" depth="2" data-item-id="tag/Knowledge/operation/knowledgeService" role="menuitem" aria-label="Knowledge graph core management (workspace-scoped)" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Knowledge graph core management (workspace-scoped)</span></label></li></ul></li><li tabindex="0" depth="1" data-item-id="tag/Collection" role="menuitem" aria-label="Collection" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Collection" class="sc-eHfQNO dYJaHY">Collection</span><svg class="sc-dQoBM cWjMmC" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></label><ul class="sc-ikPCzd eGBeQN"><li tabindex="0" depth="2" data-item-id="tag/Collection/operation/collectionManagementService" role="menuitem" aria-label="Collection metadata management (workspace-scoped)" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Collection metadata management (workspace-scoped)</span></label></li></ul></li><li tabindex="0" depth="1" data-item-id="tag/Flow-Services" role="menuitem" aria-label="Flow Services" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Flow Services" class="sc-eHfQNO dYJaHY">Flow Services</span><svg class="sc-dQoBM cWjMmC" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></label><ul class="sc-ikPCzd eGBeQN"><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/agentService" role="menuitem" aria-label="Agent service - conversational AI with reasoning" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Agent service - conversational AI with reasoning</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/documentRagService" role="menuitem" aria-label="Document RAG - retrieve and generate from documents" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Document RAG - retrieve and generate from documents</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/graphRagService" role="menuitem" aria-label="Graph RAG - retrieve and generate from knowledge graph" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Graph RAG - retrieve and generate from knowledge graph</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/textCompletionService" role="menuitem" aria-label="Text completion - direct LLM generation" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Text completion - direct LLM generation</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/promptService" role="menuitem" aria-label="Prompt service - template-based generation" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Prompt service - template-based generation</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/embeddingsService" role="menuitem" aria-label="Embeddings - text to vector conversion" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Embeddings - text to vector conversion</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/mcpToolService" role="menuitem" aria-label="MCP Tool - execute Model Context Protocol tools" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">MCP Tool - execute Model Context Protocol tools</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/triplesQueryService" role="menuitem" aria-label="Triples query - pattern-based graph queries" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Triples query - pattern-based graph queries</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/rowsQueryService" role="menuitem" aria-label="Rows query - GraphQL over structured data" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Rows query - GraphQL over structured data</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/nlpQueryService" role="menuitem" aria-label="NLP Query - natural language to structured query" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">NLP Query - natural language to structured query</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/structuredQueryService" role="menuitem" aria-label="Structured Query - question to results (all-in-one)" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Structured Query - question to results (all-in-one)</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/structuredDiagService" role="menuitem" aria-label="Structured Diag - analyze structured data formats" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Structured Diag - analyze structured data formats</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/graphEmbeddingsQueryService" role="menuitem" aria-label="Graph Embeddings Query - find similar entities" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Graph Embeddings Query - find similar entities</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/documentEmbeddingsQueryService" role="menuitem" aria-label="Document Embeddings Query - find similar text chunks" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Document Embeddings Query - find similar text chunks</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/rowEmbeddingsQueryService" role="menuitem" aria-label="Row Embeddings Query - semantic search on structured data" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Row Embeddings Query - semantic search on structured data</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/textLoadService" role="menuitem" aria-label="Text Load - load text documents" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Text Load - load text documents</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/documentLoadService" role="menuitem" aria-label="Document Load - load binary documents (PDF, etc.)" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Document Load - load binary documents (PDF, etc.)</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Flow-Services/operation/sparqlQueryService" role="menuitem" aria-label="SPARQL query - execute SPARQL 1.1 queries against the knowledge graph" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">SPARQL query - execute SPARQL 1.1 queries against the knowledge graph</span></label></li></ul></li><li tabindex="0" depth="1" data-item-id="tag/ImportExport" role="menuitem" aria-label="Import/Export" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Import/Export" class="sc-eHfQNO dYJaHY">Import/Export</span><svg class="sc-dQoBM cWjMmC" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></label><ul class="sc-ikPCzd eGBeQN"><li tabindex="0" depth="2" data-item-id="tag/ImportExport/operation/documentStream" role="menuitem" aria-label="Stream document content from library" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="get" class="sc-XhXdA kdqpyX operation-type get">get</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Stream document content from library</span></label></li><li tabindex="0" depth="2" data-item-id="tag/ImportExport/operation/importCore" role="menuitem" aria-label="Import Core - bulk import triples and embeddings" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="post" class="sc-XhXdA kdqpyX operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Import Core - bulk import triples and embeddings</span></label></li><li tabindex="0" depth="2" data-item-id="tag/ImportExport/operation/exportCore" role="menuitem" aria-label="Export Core - bulk export triples and embeddings" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="get" class="sc-XhXdA kdqpyX operation-type get">get</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Export Core - bulk export triples and embeddings</span></label></li></ul></li><li tabindex="0" depth="1" data-item-id="tag/WebSocket" role="menuitem" aria-label="WebSocket" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="WebSocket" class="sc-eHfQNO dYJaHY">WebSocket</span><svg class="sc-dQoBM cWjMmC" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></label><ul class="sc-ikPCzd eGBeQN"><li tabindex="0" depth="2" data-item-id="tag/WebSocket/operation/websocketConnection" role="menuitem" aria-label="WebSocket - multiplexed service interface" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="get" class="sc-XhXdA kdqpyX operation-type get">get</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">WebSocket - multiplexed service interface</span></label></li></ul></li><li tabindex="0" depth="1" data-item-id="tag/Metrics" role="menuitem" aria-label="Metrics" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP kYHuni -depth1"><span width="calc(100% - 38px)" title="Metrics" class="sc-eHfQNO dYJaHY">Metrics</span><svg class="sc-dQoBM cWjMmC" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></label><ul class="sc-ikPCzd eGBeQN"><li tabindex="0" depth="2" data-item-id="tag/Metrics/operation/getMetrics" role="menuitem" aria-label="Metrics - Prometheus metrics endpoint" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="get" class="sc-XhXdA kdqpyX operation-type get">get</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Metrics - Prometheus metrics endpoint</span></label></li><li tabindex="0" depth="2" data-item-id="tag/Metrics/operation/getMetricsPath" role="menuitem" aria-label="Metrics - Prometheus metrics with path" aria-expanded="false" class="sc-tYrig hNMAOR"><label class="sc-biBsFP ehmZgs -depth2"><span type="get" class="sc-XhXdA kdqpyX operation-type get">get</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eHfQNO dYJaHY">Metrics - Prometheus metrics with path</span></label></li></ul></li></ul><div class="sc-hzMLOJ icnaqS"><a target="_blank" rel="noopener noreferrer" href="https://redocly.com/redoc/">API docs by Redocly</a></div></div></div><div class="sc-kUbhZP fsqnbI"><div class="sc-irlPNa iDYPDd"><svg class="" style="transform:translate(2px, -4px) rotate(180deg);transition:transform 0.2s ease" viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="15" height="15"><g transform="translate(904.92214,-879.1482)"><path d="
m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
-55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
-174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
-174.68583 0.6895,0 26.281,25.03215 56.8701,
55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
-231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
-104.0616 -231.873,-231.248 z
" fill="currentColor"></path></g></svg><svg class="" style="transform:translate(2px, 4px);transition:transform 0.2s ease" viewBox="0 0 926.23699 573.74994" version="1.1" x="0px" y="0px" width="15" height="15"><g transform="translate(904.92214,-879.1482)"><path d="
m -673.67664,1221.6502 -231.2455,-231.24803 55.6165,
-55.627 c 30.5891,-30.59485 56.1806,-55.627 56.8701,-55.627 0.6894,
0 79.8637,78.60862 175.9427,174.68583 l 174.6892,174.6858 174.6892,
-174.6858 c 96.079,-96.07721 175.253196,-174.68583 175.942696,
-174.68583 0.6895,0 26.281,25.03215 56.8701,
55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
-231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
-104.0616 -231.873,-231.248 z
" fill="currentColor"></path></g></svg></div></div><div class="sc-jtHOzJ JaJkD api-content"><div class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI api-info"><h1 class="sc-fubEtJ sc-ctaZPk edtrWC eSPXsI">TrustGraph API Gateway<!-- --> <span>(<!-- -->2.4<!-- -->)</span></h1><p>Download OpenAPI specification<!-- -->:</p><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><div class="sc-gInsaR kjXtVa"><div class="sc-euMpks eNyNMf"> <span class="sc-bsiqDO kpDuUN">URL: <a href="https://trustgraph.ai">https://trustgraph.ai</a></span> <span class="sc-bsiqDO kpDuUN">License:<!-- --> <a href="https://www.apache.org/licenses/LICENSE-2.0.html">Apache 2.0</a></span> </div></div></div><div data-role="redoc-summary" html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><div data-role="redoc-description" html="&lt;p&gt;REST API for TrustGraph - an AI-powered knowledge graph and RAG system.&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>REST API for TrustGraph - an AI-powered knowledge graph and RAG system.</p>
</div></div></div></div><div id="section/Overview" data-section-id="section/Overview" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-jrAIFA bedHjN"><a class="sc-crrrsl itgZBm" href="#section/Overview" aria-label="section/Overview"></a>Overview</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;The API provides access to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Global Services&lt;/strong&gt;: IAM (user management, authentication)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Workspace-Scoped Services&lt;/strong&gt;: Configuration, flow management, knowledge storage, library management&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow-Scoped Services&lt;/strong&gt;: AI services like RAG, text completion, embeddings (require running flow)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Import/Export&lt;/strong&gt;: Bulk data operations for triples, embeddings, entity contexts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WebSocket&lt;/strong&gt;: Multiplexed interface for all services&lt;/li&gt;
&lt;/ul&gt;
"><p>The API provides access to:</p>
<ul>
<li><strong>Global Services</strong>: IAM (user management, authentication)</li>
<li><strong>Workspace-Scoped Services</strong>: Configuration, flow management, knowledge storage, library management</li>
<li><strong>Flow-Scoped Services</strong>: AI services like RAG, text completion, embeddings (require running flow)</li>
<li><strong>Import/Export</strong>: Bulk data operations for triples, embeddings, entity contexts</li>
<li><strong>WebSocket</strong>: Multiplexed interface for all services</li>
</ul>
</div></div></div><div id="section/Authentication" data-section-id="section/Authentication" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-jrAIFA bedHjN"><a class="sc-crrrsl itgZBm" href="#section/Authentication" aria-label="section/Authentication"></a>Authentication</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;Clients authenticate by passing an opaque bearer token in the
&lt;code&gt;Authorization&lt;/code&gt; header. The token is obtained via the IAM service
(e.g. &lt;code&gt;tg-login&lt;/code&gt; or &lt;code&gt;tg-create-api-key&lt;/code&gt;).&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Authorization&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Bearer &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;token&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The gateway resolves the token to an authenticated identity and an
associated workspace. The token is an opaque string — clients must
not make assumptions about its internal structure.&lt;/p&gt;
"><p>Clients authenticate by passing an opaque bearer token in the
<code>Authorization</code> header. The token is obtained via the IAM service
(e.g. <code>tg-login</code> or <code>tg-create-api-key</code>).</p>
<pre><code>Authorization<span class="token punctuation">:</span> Bearer <span class="token operator">&lt;</span>token<span class="token operator">></span>
</code></pre>
<p>The gateway resolves the token to an authenticated identity and an
associated workspace. The token is an opaque string — clients must
not make assumptions about its internal structure.</p>
</div></div></div><div id="section/Service-Tiers" data-section-id="section/Service-Tiers" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-jrAIFA bedHjN"><a class="sc-crrrsl itgZBm" href="#section/Service-Tiers" aria-label="section/Service-Tiers"></a>Service Tiers</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;h3 id=&quot;global-services&quot;&gt;Global Services&lt;/h3&gt;
&lt;p&gt;System-wide services with no workspace scoping:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;iam&lt;/code&gt; - User management, authentication, API key lifecycle&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;workspace-scoped-services&quot;&gt;Workspace-Scoped Services&lt;/h3&gt;
&lt;p&gt;Operate within the workspace associated with the authenticated
token. The workspace is resolved by the gateway — it is not
passed as an explicit parameter.&lt;/p&gt;
&lt;p&gt;Fixed endpoints accessible via &lt;code&gt;/api/v1/{kind}&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;config&lt;/code&gt; - Configuration management&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flow&lt;/code&gt; - Flow lifecycle and blueprints&lt;/li&gt;
&lt;li&gt;&lt;code&gt;librarian&lt;/code&gt; - Document library management&lt;/li&gt;
&lt;li&gt;&lt;code&gt;knowledge&lt;/code&gt; - Knowledge graph core management&lt;/li&gt;
&lt;li&gt;&lt;code&gt;collection-management&lt;/code&gt; - Collection metadata&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;flow-scoped-services&quot;&gt;Flow-Scoped Services&lt;/h3&gt;
&lt;p&gt;Require a &lt;code&gt;flow&lt;/code&gt; parameter identifying the processing flow to use.
Workspace context comes from the authenticated token.&lt;/p&gt;
&lt;p&gt;Accessed via &lt;code&gt;/api/v1/flow/{flow}/service/{kind}&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI services: agent, text-completion, prompt, RAG (document/graph)&lt;/li&gt;
&lt;li&gt;Embeddings: embeddings, graph-embeddings, document-embeddings&lt;/li&gt;
&lt;li&gt;Query: triples, rows, nlp-query, structured-query, sparql-query, row-embeddings&lt;/li&gt;
&lt;li&gt;Data loading: text-load, document-load&lt;/li&gt;
&lt;li&gt;Utilities: mcp-tool, structured-diag&lt;/li&gt;
&lt;/ul&gt;
"><h3 id="global-services">Global Services</h3>
<p>System-wide services with no workspace scoping:</p>
<ul>
<li><code>iam</code> - User management, authentication, API key lifecycle</li>
</ul>
<h3 id="workspace-scoped-services">Workspace-Scoped Services</h3>
<p>Operate within the workspace associated with the authenticated
token. The workspace is resolved by the gateway — it is not
passed as an explicit parameter.</p>
<p>Fixed endpoints accessible via <code>/api/v1/{kind}</code>:</p>
<ul>
<li><code>config</code> - Configuration management</li>
<li><code>flow</code> - Flow lifecycle and blueprints</li>
<li><code>librarian</code> - Document library management</li>
<li><code>knowledge</code> - Knowledge graph core management</li>
<li><code>collection-management</code> - Collection metadata</li>
</ul>
<h3 id="flow-scoped-services">Flow-Scoped Services</h3>
<p>Require a <code>flow</code> parameter identifying the processing flow to use.
Workspace context comes from the authenticated token.</p>
<p>Accessed via <code>/api/v1/flow/{flow}/service/{kind}</code>:</p>
<ul>
<li>AI services: agent, text-completion, prompt, RAG (document/graph)</li>
<li>Embeddings: embeddings, graph-embeddings, document-embeddings</li>
<li>Query: triples, rows, nlp-query, structured-query, sparql-query, row-embeddings</li>
<li>Data loading: text-load, document-load</li>
<li>Utilities: mcp-tool, structured-diag</li>
</ul>
</div></div></div><div id="section/Field-Naming" data-section-id="section/Field-Naming" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-jrAIFA bedHjN"><a class="sc-crrrsl itgZBm" href="#section/Field-Naming" aria-label="section/Field-Naming"></a>Field Naming</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;All JSON fields use &lt;strong&gt;kebab-case&lt;/strong&gt;: &lt;code&gt;flow-id&lt;/code&gt;, &lt;code&gt;blueprint-name&lt;/code&gt;, &lt;code&gt;doc-limit&lt;/code&gt;, etc.&lt;/p&gt;
"><p>All JSON fields use <strong>kebab-case</strong>: <code>flow-id</code>, <code>blueprint-name</code>, <code>doc-limit</code>, etc.</p>
</div></div></div><div id="section/Error-Responses" data-section-id="section/Error-Responses" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-jrAIFA bedHjN"><a class="sc-crrrsl itgZBm" href="#section/Error-Responses" aria-label="section/Error-Responses"></a>Error Responses</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;All endpoints may return errors in this format:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;gateway-error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;message&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Timeout&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
"><p>All endpoints may return errors in this format:</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"error"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token string-property property">"type"</span><span class="token operator">:</span> <span class="token string">"gateway-error"</span><span class="token punctuation">,</span>
<span class="token string-property property">"message"</span><span class="token operator">:</span> <span class="token string">"Timeout"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div></div></div><div id="tag/Config" data-section-id="tag/Config" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Config" aria-label="tag/Config"></a>Config</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;Configuration management (workspace-scoped)&lt;/p&gt;
"><p>Configuration management (workspace-scoped)</p>
</div></div></div><div id="tag/Config/operation/configService" data-section-id="tag/Config/operation/configService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/configService" id="operation/configService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Config/operation/configService" aria-label="tag/Config/operation/configService"></a>Configuration service (workspace-scoped)<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Manage TrustGraph configuration including flows, prompts, token costs,
parameter types, and more.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;workspace-scoped&lt;/strong&gt; service. All operations apply to the
workspace associated with the authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;operations&quot;&gt;Operations&lt;/h2&gt;
&lt;h3 id=&quot;config&quot;&gt;config&lt;/h3&gt;
&lt;p&gt;Get the complete system configuration including all flows, prompts, token costs, etc.&lt;/p&gt;
&lt;h3 id=&quot;list&quot;&gt;list&lt;/h3&gt;
&lt;p&gt;List all configuration items of a specific type (e.g., all flows, all prompts).&lt;/p&gt;
&lt;h3 id=&quot;get&quot;&gt;get&lt;/h3&gt;
&lt;p&gt;Retrieve specific configuration items by type and key.&lt;/p&gt;
&lt;h3 id=&quot;put&quot;&gt;put&lt;/h3&gt;
&lt;p&gt;Create or update configuration values.&lt;/p&gt;
&lt;h3 id=&quot;delete&quot;&gt;delete&lt;/h3&gt;
&lt;p&gt;Delete configuration items.&lt;/p&gt;
&lt;h2 id=&quot;configuration-types&quot;&gt;Configuration Types&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;flow&lt;/code&gt; - Flow instance definitions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flow-blueprint&lt;/code&gt; - Flow blueprint definitions (stored separately from flow instances)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prompt&lt;/code&gt; - Prompt templates&lt;/li&gt;
&lt;li&gt;&lt;code&gt;token-cost&lt;/code&gt; - Model token pricing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;parameter-type&lt;/code&gt; - Parameter type definitions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;interface-description&lt;/code&gt; - Interface descriptions&lt;/li&gt;
&lt;li&gt;Custom types as needed&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;important-distinction&quot;&gt;Important Distinction&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;config service&lt;/strong&gt; manages &lt;em&gt;stored configuration&lt;/em&gt;.
The &lt;strong&gt;flow service&lt;/strong&gt; (&lt;code&gt;/api/v1/flow&lt;/code&gt;) manages &lt;em&gt;running flow instances&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use config service to store/retrieve flow definitions&lt;/li&gt;
&lt;li&gt;Use flow service to start/stop/manage running flows&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Manage TrustGraph configuration including flows, prompts, token costs,
parameter types, and more.</p>
<p>This is a <strong>workspace-scoped</strong> service. All operations apply to the
workspace associated with the authenticated bearer token.</p>
<h2 id="operations">Operations</h2>
<h3 id="config">config</h3>
<p>Get the complete system configuration including all flows, prompts, token costs, etc.</p>
<h3 id="list">list</h3>
<p>List all configuration items of a specific type (e.g., all flows, all prompts).</p>
<h3 id="get">get</h3>
<p>Retrieve specific configuration items by type and key.</p>
<h3 id="put">put</h3>
<p>Create or update configuration values.</p>
<h3 id="delete">delete</h3>
<p>Delete configuration items.</p>
<h2 id="configuration-types">Configuration Types</h2>
<ul>
<li><code>flow</code> - Flow instance definitions</li>
<li><code>flow-blueprint</code> - Flow blueprint definitions (stored separately from flow instances)</li>
<li><code>prompt</code> - Prompt templates</li>
<li><code>token-cost</code> - Model token pricing</li>
<li><code>parameter-type</code> - Parameter type definitions</li>
<li><code>interface-description</code> - Interface descriptions</li>
<li>Custom types as needed</li>
</ul>
<h2 id="important-distinction">Important Distinction</h2>
<p>The <strong>config service</strong> manages <em>stored configuration</em>.
The <strong>flow service</strong> (<code>/api/v1/flow</code>) manages <em>running flow instances</em>.</p>
<ul>
<li>Use config service to store/retrieve flow definitions</li>
<li>Use flow service to start/stop/manage running flows</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="operation" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">operation</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Enum<!-- -->:</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;config&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;list&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;get&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;put&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;delete&quot;</span> </div> <div><div html="&lt;p&gt;Operation to perform:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;config&lt;/code&gt;: Get complete configuration&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list&lt;/code&gt;: List all items of a specific type&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get&lt;/code&gt;: Get specific configuration items&lt;/li&gt;
&lt;li&gt;&lt;code&gt;put&lt;/code&gt;: Set/update configuration values&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete&lt;/code&gt;: Delete configuration items&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Operation to perform:</p>
<ul>
<li><code>config</code>: Get complete configuration</li>
<li><code>list</code>: List all items of a specific type</li>
<li><code>get</code>: Get specific configuration items</li>
<li><code>put</code>: Set/update configuration values</li>
<li><code>delete</code>: Delete configuration items</li>
</ul>
</div></div></div></td></tr><tr class=""><td kind="field" title="type" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">type</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Configuration type (required for list, get, put, delete operations).
Common types: flow, prompt, token-cost, parameter-type, interface-description&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Configuration type (required for list, get, put, delete operations).
Common types: flow, prompt, token-cost, parameter-type, interface-description</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="keys"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand keys"><span class="property-name">keys</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">objects</span></div> <div><div html="&lt;p&gt;Keys to retrieve (for get operation) or delete (for delete operation)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Keys to retrieve (for get operation) or delete (for delete operation)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="values"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand values"><span class="property-name">values</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">objects</span></div> <div><div html="&lt;p&gt;Values to set/update (for put operation)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Values to set/update (for put operation)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/config</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/config</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_ijja_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_ijja_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_ijja_0" aria-labelledby="tab_R_ijja_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Get complete configuration" selected="">Get complete configuration</option><option value="List all stored flow definitions">List all stored flow definitions</option><option value="List all prompts">List all prompts</option><option value="Get specific flow definition">Get specific flow definition</option><option value="Create/update flow definition">Create/update flow definition</option><option value="Set system prompt">Set system prompt</option><option value="Set token costs for a model">Set token costs for a model</option><option value="Delete flow definition">Delete flow definition</option></select><label>Get complete configuration</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"operation"</span>: <span class="token string">&quot;config&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_jjja_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_jjja_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_jjja_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjja_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_jjja_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjja_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_jjja_0" aria-labelledby="tab_R_jjja_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Complete configuration" selected="">Complete configuration</option><option value="List of flow definition keys">List of flow definition keys</option><option value="Retrieved flow definition">Retrieved flow definition</option><option value="Put operation success">Put operation success</option><option value="Delete operation success">Delete operation success</option></select><label>Complete configuration</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"version"</span>: <span class="token number">42</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"config"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"flow"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"default"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"blueprint-name"</span>: <span class="token string">&quot;document-rag+graph-rag&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"description"</span>: <span class="token string">&quot;Default flow&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"interfaces"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"agent"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"request"</span>: <span class="token string">&quot;non-persistent://tg/request/agent:default&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"response"</span>: <span class="token string">&quot;non-persistent://tg/response/agent:default&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"prompt"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"system"</span>: <span class="token string">&quot;You are a helpful AI assistant&quot;</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"token-cost"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"gpt-4"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"prompt"</span>: <span class="token number">0.03</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"completion"</span>: <span class="token number">0.06</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjja_1" aria-labelledby="tab_R_jjja_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjja_2" aria-labelledby="tab_R_jjja_2"></div></div></div></div></div></div><div id="tag/Flow" data-section-id="tag/Flow" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow" aria-label="tag/Flow"></a>Flow</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;Flow lifecycle and blueprint management (workspace-scoped)&lt;/p&gt;
"><p>Flow lifecycle and blueprint management (workspace-scoped)</p>
</div></div></div><div id="tag/Flow/operation/flowService" data-section-id="tag/Flow/operation/flowService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/flowService" id="operation/flowService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow/operation/flowService" aria-label="tag/Flow/operation/flowService"></a>Flow lifecycle and blueprint management (workspace-scoped)<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Manage flow instances and blueprints.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;workspace-scoped&lt;/strong&gt; service. All operations apply to the
workspace associated with the authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;important-distinction&quot;&gt;Important Distinction&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;flow service&lt;/strong&gt; manages &lt;em&gt;running flow instances&lt;/em&gt;.
The &lt;strong&gt;config service&lt;/strong&gt; (&lt;code&gt;/api/v1/config&lt;/code&gt;) manages &lt;em&gt;stored configuration&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use flow service to start/stop/manage running flows&lt;/li&gt;
&lt;li&gt;Use config service to store/retrieve flow definitions&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;flow-instance-operations&quot;&gt;Flow Instance Operations&lt;/h2&gt;
&lt;h3 id=&quot;start-flow&quot;&gt;start-flow&lt;/h3&gt;
&lt;p&gt;Start a new flow instance from a blueprint. The blueprint must exist (either built-in or created via put-blueprint).&lt;/p&gt;
&lt;p&gt;Parameters are resolved from:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;User-provided values (--param)&lt;/li&gt;
&lt;li&gt;Default values from parameter type definitions&lt;/li&gt;
&lt;li&gt;Controlled-by relationships&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;stop-flow&quot;&gt;stop-flow&lt;/h3&gt;
&lt;p&gt;Stop a running flow instance. This terminates all processors and releases resources.&lt;/p&gt;
&lt;h3 id=&quot;list-flows&quot;&gt;list-flows&lt;/h3&gt;
&lt;p&gt;List all currently running flow instances.&lt;/p&gt;
&lt;h3 id=&quot;get-flow&quot;&gt;get-flow&lt;/h3&gt;
&lt;p&gt;Get details of a running flow including its configuration, parameters, and interface queue names.&lt;/p&gt;
&lt;h2 id=&quot;blueprint-operations&quot;&gt;Blueprint Operations&lt;/h2&gt;
&lt;h3 id=&quot;list-blueprints&quot;&gt;list-blueprints&lt;/h3&gt;
&lt;p&gt;List all available flow blueprints (built-in and custom).&lt;/p&gt;
&lt;h3 id=&quot;get-blueprint&quot;&gt;get-blueprint&lt;/h3&gt;
&lt;p&gt;Retrieve a blueprint definition showing its structure, parameters, processors, and interfaces.&lt;/p&gt;
&lt;h3 id=&quot;put-blueprint&quot;&gt;put-blueprint&lt;/h3&gt;
&lt;p&gt;Create or update a flow blueprint definition.&lt;/p&gt;
&lt;p&gt;Blueprints define:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Class processors&lt;/strong&gt;: Shared across all instances of this blueprint&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow processors&lt;/strong&gt;: Unique to each flow instance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interfaces&lt;/strong&gt;: Entry points for external systems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parameters&lt;/strong&gt;: Configurable values for customization&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;delete-blueprint&quot;&gt;delete-blueprint&lt;/h3&gt;
&lt;p&gt;Delete a custom blueprint definition. Built-in blueprints cannot be deleted.&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Manage flow instances and blueprints.</p>
<p>This is a <strong>workspace-scoped</strong> service. All operations apply to the
workspace associated with the authenticated bearer token.</p>
<h2 id="important-distinction">Important Distinction</h2>
<p>The <strong>flow service</strong> manages <em>running flow instances</em>.
The <strong>config service</strong> (<code>/api/v1/config</code>) manages <em>stored configuration</em>.</p>
<ul>
<li>Use flow service to start/stop/manage running flows</li>
<li>Use config service to store/retrieve flow definitions</li>
</ul>
<h2 id="flow-instance-operations">Flow Instance Operations</h2>
<h3 id="start-flow">start-flow</h3>
<p>Start a new flow instance from a blueprint. The blueprint must exist (either built-in or created via put-blueprint).</p>
<p>Parameters are resolved from:</p>
<ol>
<li>User-provided values (--param)</li>
<li>Default values from parameter type definitions</li>
<li>Controlled-by relationships</li>
</ol>
<h3 id="stop-flow">stop-flow</h3>
<p>Stop a running flow instance. This terminates all processors and releases resources.</p>
<h3 id="list-flows">list-flows</h3>
<p>List all currently running flow instances.</p>
<h3 id="get-flow">get-flow</h3>
<p>Get details of a running flow including its configuration, parameters, and interface queue names.</p>
<h2 id="blueprint-operations">Blueprint Operations</h2>
<h3 id="list-blueprints">list-blueprints</h3>
<p>List all available flow blueprints (built-in and custom).</p>
<h3 id="get-blueprint">get-blueprint</h3>
<p>Retrieve a blueprint definition showing its structure, parameters, processors, and interfaces.</p>
<h3 id="put-blueprint">put-blueprint</h3>
<p>Create or update a flow blueprint definition.</p>
<p>Blueprints define:</p>
<ul>
<li><strong>Class processors</strong>: Shared across all instances of this blueprint</li>
<li><strong>Flow processors</strong>: Unique to each flow instance</li>
<li><strong>Interfaces</strong>: Entry points for external systems</li>
<li><strong>Parameters</strong>: Configurable values for customization</li>
</ul>
<h3 id="delete-blueprint">delete-blueprint</h3>
<p>Delete a custom blueprint definition. Built-in blueprints cannot be deleted.</p>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="operation" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">operation</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Enum<!-- -->:</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;start-flow&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;stop-flow&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;list-flows&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;get-flow&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;list-blueprints&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;get-blueprint&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;put-blueprint&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;delete-blueprint&quot;</span> </div> <div><div html="&lt;p&gt;Flow operation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;start-flow&lt;/code&gt;: Start a new flow instance from a blueprint&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stop-flow&lt;/code&gt;: Stop a running flow instance&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list-flows&lt;/code&gt;: List all running flow instances&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get-flow&lt;/code&gt;: Get details of a running flow&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list-blueprints&lt;/code&gt;: List available flow blueprints&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get-blueprint&lt;/code&gt;: Get blueprint definition&lt;/li&gt;
&lt;li&gt;&lt;code&gt;put-blueprint&lt;/code&gt;: Create/update blueprint definition&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete-blueprint&lt;/code&gt;: Delete blueprint definition&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow operation:</p>
<ul>
<li><code>start-flow</code>: Start a new flow instance from a blueprint</li>
<li><code>stop-flow</code>: Stop a running flow instance</li>
<li><code>list-flows</code>: List all running flow instances</li>
<li><code>get-flow</code>: Get details of a running flow</li>
<li><code>list-blueprints</code>: List available flow blueprints</li>
<li><code>get-blueprint</code>: Get blueprint definition</li>
<li><code>put-blueprint</code>: Create/update blueprint definition</li>
<li><code>delete-blueprint</code>: Delete blueprint definition</li>
</ul>
</div></div></div></td></tr><tr class=""><td kind="field" title="flow-id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow-id</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Flow instance ID (required for start-flow, stop-flow, get-flow)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID (required for start-flow, stop-flow, get-flow)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="blueprint-name" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">blueprint-name</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Flow blueprint name (required for start-flow, get-blueprint, put-blueprint, delete-blueprint)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow blueprint name (required for start-flow, get-blueprint, put-blueprint, delete-blueprint)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="blueprint-definition"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand blueprint-definition"><span class="property-name">blueprint-definition</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span></div> <div><div html="&lt;p&gt;Flow blueprint definition (required for put-blueprint)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow blueprint definition (required for put-blueprint)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="description" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">description</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Flow description (optional for start-flow)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow description (optional for start-flow)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="parameters"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand parameters"><span class="property-name">parameters</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span></div> <div><div html="&lt;p&gt;Flow parameters (for start-flow).
All values are stored as strings, regardless of input type.&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow parameters (for start-flow).
All values are stored as strings, regardless of input type.</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_ijjq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_ijjq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_ijjq_0" aria-labelledby="tab_R_ijjq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Start a flow instance" selected="">Start a flow instance</option><option value="Start flow with defaults">Start flow with defaults</option><option value="Stop a flow instance">Stop a flow instance</option><option value="List running flows">List running flows</option><option value="Get flow details">Get flow details</option><option value="List available blueprints">List available blueprints</option><option value="Get blueprint definition">Get blueprint definition</option><option value="Create/update blueprint">Create/update blueprint</option><option value="Delete blueprint">Delete blueprint</option></select><label>Start a flow instance</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"operation"</span>: <span class="token string">&quot;start-flow&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"flow-id"</span>: <span class="token string">&quot;my-flow&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"blueprint-name"</span>: <span class="token string">&quot;document-rag&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"description"</span>: <span class="token string">&quot;My document processing flow&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"parameters"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"model"</span>: <span class="token string">&quot;gpt-4&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"temperature"</span>: <span class="token string">&quot;0.7&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_jjjq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_jjjq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_jjjq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjjq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_jjjq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjjq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_jjjq_0" aria-labelledby="tab_R_jjjq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Flow started" selected="">Flow started</option><option value="Running flows">Running flows</option><option value="Flow details">Flow details</option><option value="Available blueprints">Available blueprints</option><option value="Blueprint definition">Blueprint definition</option></select><label>Flow started</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"flow-id"</span>: <span class="token string">&quot;my-flow&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjjq_1" aria-labelledby="tab_R_jjjq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjjq_2" aria-labelledby="tab_R_jjjq_2"></div></div></div></div></div></div><div id="tag/Librarian" data-section-id="tag/Librarian" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Librarian" aria-label="tag/Librarian"></a>Librarian</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;Document library management (workspace-scoped)&lt;/p&gt;
"><p>Document library management (workspace-scoped)</p>
</div></div></div><div id="tag/Librarian/operation/librarianService" data-section-id="tag/Librarian/operation/librarianService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/librarianService" id="operation/librarianService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Librarian/operation/librarianService" aria-label="tag/Librarian/operation/librarianService"></a>Document library management (workspace-scoped)<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Manage document library: add, remove, list documents, and control
processing.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;workspace-scoped&lt;/strong&gt; service. All operations apply to the
workspace associated with the authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;document-library&quot;&gt;Document Library&lt;/h2&gt;
&lt;p&gt;The librarian service manages a persistent library of documents that can be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added with metadata for organization&lt;/li&gt;
&lt;li&gt;Queried and filtered by criteria&lt;/li&gt;
&lt;li&gt;Processed through flows on-demand or continuously&lt;/li&gt;
&lt;li&gt;Tracked for processing status&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;operations&quot;&gt;Operations&lt;/h2&gt;
&lt;h3 id=&quot;add-document&quot;&gt;add-document&lt;/h3&gt;
&lt;p&gt;Add a document to the library with metadata (URL, title, author, etc.).
Documents can be added by URL or with inline content.&lt;/p&gt;
&lt;h3 id=&quot;remove-document&quot;&gt;remove-document&lt;/h3&gt;
&lt;p&gt;Remove a document from the library by document ID or URL.&lt;/p&gt;
&lt;h3 id=&quot;list-documents&quot;&gt;list-documents&lt;/h3&gt;
&lt;p&gt;List all documents in the library, optionally filtered by criteria.&lt;/p&gt;
&lt;h3 id=&quot;start-processing&quot;&gt;start-processing&lt;/h3&gt;
&lt;p&gt;Start processing library documents through a flow. Documents are queued
for processing and handled asynchronously.&lt;/p&gt;
&lt;h3 id=&quot;stop-processing&quot;&gt;stop-processing&lt;/h3&gt;
&lt;p&gt;Stop ongoing library document processing.&lt;/p&gt;
&lt;h3 id=&quot;list-processing&quot;&gt;list-processing&lt;/h3&gt;
&lt;p&gt;List current processing tasks and their status.&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Manage document library: add, remove, list documents, and control
processing.</p>
<p>This is a <strong>workspace-scoped</strong> service. All operations apply to the
workspace associated with the authenticated bearer token.</p>
<h2 id="document-library">Document Library</h2>
<p>The librarian service manages a persistent library of documents that can be:</p>
<ul>
<li>Added with metadata for organization</li>
<li>Queried and filtered by criteria</li>
<li>Processed through flows on-demand or continuously</li>
<li>Tracked for processing status</li>
</ul>
<h2 id="operations">Operations</h2>
<h3 id="add-document">add-document</h3>
<p>Add a document to the library with metadata (URL, title, author, etc.).
Documents can be added by URL or with inline content.</p>
<h3 id="remove-document">remove-document</h3>
<p>Remove a document from the library by document ID or URL.</p>
<h3 id="list-documents">list-documents</h3>
<p>List all documents in the library, optionally filtered by criteria.</p>
<h3 id="start-processing">start-processing</h3>
<p>Start processing library documents through a flow. Documents are queued
for processing and handled asynchronously.</p>
<h3 id="stop-processing">stop-processing</h3>
<p>Stop ongoing library document processing.</p>
<h3 id="list-processing">list-processing</h3>
<p>List current processing tasks and their status.</p>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="operation" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">operation</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Enum<!-- -->:</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;add-document&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;remove-document&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;list-documents&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;get-document-metadata&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;get-document-content&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;stream-document&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;add-child-document&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;list-children&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;begin-upload&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;upload-chunk&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;complete-upload&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;abort-upload&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;get-upload-status&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;list-uploads&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;start-processing&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;stop-processing&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;list-processing&quot;</span> </div> <div><div html="&lt;p&gt;Library operation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;add-document&lt;/code&gt;: Add document to library&lt;/li&gt;
&lt;li&gt;&lt;code&gt;remove-document&lt;/code&gt;: Remove document from library&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list-documents&lt;/code&gt;: List documents in library&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get-document-metadata&lt;/code&gt;: Get document metadata&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get-document-content&lt;/code&gt;: Get full document content in a single response.
&lt;strong&gt;Deprecated&lt;/strong&gt; — use &lt;code&gt;stream-document&lt;/code&gt; instead. Fails for documents
exceeding the broker&amp;#39;s max message size.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stream-document&lt;/code&gt;: Stream document content in chunks. Each response
includes &lt;code&gt;chunk_index&lt;/code&gt; and &lt;code&gt;is_final&lt;/code&gt;. Preferred over &lt;code&gt;get-document-content&lt;/code&gt;
for all document sizes.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;add-child-document&lt;/code&gt;: Add a child document (e.g. page, chunk)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list-children&lt;/code&gt;: List child documents of a parent&lt;/li&gt;
&lt;li&gt;&lt;code&gt;begin-upload&lt;/code&gt;: Start a chunked upload session&lt;/li&gt;
&lt;li&gt;&lt;code&gt;upload-chunk&lt;/code&gt;: Upload a chunk of data&lt;/li&gt;
&lt;li&gt;&lt;code&gt;complete-upload&lt;/code&gt;: Finalize a chunked upload&lt;/li&gt;
&lt;li&gt;&lt;code&gt;abort-upload&lt;/code&gt;: Cancel a chunked upload&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get-upload-status&lt;/code&gt;: Check upload progress&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list-uploads&lt;/code&gt;: List active upload sessions&lt;/li&gt;
&lt;li&gt;&lt;code&gt;start-processing&lt;/code&gt;: Start processing library documents&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stop-processing&lt;/code&gt;: Stop library processing&lt;/li&gt;
&lt;li&gt;&lt;code&gt;list-processing&lt;/code&gt;: List processing status&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Library operation:</p>
<ul>
<li><code>add-document</code>: Add document to library</li>
<li><code>remove-document</code>: Remove document from library</li>
<li><code>list-documents</code>: List documents in library</li>
<li><code>get-document-metadata</code>: Get document metadata</li>
<li><code>get-document-content</code>: Get full document content in a single response.
<strong>Deprecated</strong> — use <code>stream-document</code> instead. Fails for documents
exceeding the broker&#39;s max message size.</li>
<li><code>stream-document</code>: Stream document content in chunks. Each response
includes <code>chunk_index</code> and <code>is_final</code>. Preferred over <code>get-document-content</code>
for all document sizes.</li>
<li><code>add-child-document</code>: Add a child document (e.g. page, chunk)</li>
<li><code>list-children</code>: List child documents of a parent</li>
<li><code>begin-upload</code>: Start a chunked upload session</li>
<li><code>upload-chunk</code>: Upload a chunk of data</li>
<li><code>complete-upload</code>: Finalize a chunked upload</li>
<li><code>abort-upload</code>: Cancel a chunked upload</li>
<li><code>get-upload-status</code>: Check upload progress</li>
<li><code>list-uploads</code>: List active upload sessions</li>
<li><code>start-processing</code>: Start processing library documents</li>
<li><code>stop-processing</code>: Stop library processing</li>
<li><code>list-processing</code>: List processing status</li>
</ul>
</div></div></div></td></tr><tr class=""><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Flow ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow ID</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection identifier&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="document-id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">document-id</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Document identifier&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Document identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="processing-id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">processing-id</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Processing task identifier&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Processing task identifier</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="document-metadata"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand document-metadata"><span class="property-name">document-metadata</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span><span class="sc-gTgAvG sc-jeGQnC gCMUGw jJMDiT"> (<!-- -->DocumentMetadata<!-- -->) </span></div> <div><div html="&lt;p&gt;Document metadata for library management&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Document metadata for library management</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="processing-metadata"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand processing-metadata"><span class="property-name">processing-metadata</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span><span class="sc-gTgAvG sc-jeGQnC gCMUGw jJMDiT"> (<!-- -->ProcessingMetadata<!-- -->) </span></div> <div><div html="&lt;p&gt;Processing metadata for library document processing&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Processing metadata for library document processing</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="content" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">content</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Document content (for add-document with inline content)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Document content (for add-document with inline content)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="criteria"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand criteria"><span class="property-name">criteria</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">objects</span></div> <div><div html="&lt;p&gt;Search criteria for filtering documents&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Search criteria for filtering documents</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/librarian</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/librarian</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_ijka_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_ijka_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_ijka_0" aria-labelledby="tab_R_ijka_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Add document by URL" selected="">Add document by URL</option><option value="Add document with inline content">Add document with inline content</option><option value="Remove document">Remove document</option><option value="List all documents">List all documents</option><option value="List documents with criteria">List documents with criteria</option><option value="Start processing library documents">Start processing library documents</option><option value="Stop processing">Stop processing</option><option value="List processing status">List processing status</option></select><label>Add document by URL</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"operation"</span>: <span class="token string">&quot;add-document&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"flow"</span>: <span class="token string">&quot;my-flow&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;default&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"document-metadata"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"url"</span>: <span class="token string">&quot;</span><a href="https://example.com/document.pdf">https://example.com/document.pdf</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"title"</span>: <span class="token string">&quot;Example Document&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"author"</span>: <span class="token string">&quot;John Doe&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"metadata"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"department"</span>: <span class="token string">&quot;Engineering&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"category"</span>: <span class="token string">&quot;Technical&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_jjka_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_jjka_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_jjka_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjka_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_jjka_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjka_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_jjka_0" aria-labelledby="tab_R_jjka_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="List of documents" selected="">List of documents</option><option value="Processing status">Processing status</option></select><label>List of documents</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"document-metadatas"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"url"</span>: <span class="token string">&quot;</span><a href="https://example.com/doc1.pdf">https://example.com/doc1.pdf</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"title"</span>: <span class="token string">&quot;Document 1&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"author"</span>: <span class="token string">&quot;John Doe&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"metadata"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"department"</span>: <span class="token string">&quot;Engineering&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"url"</span>: <span class="token string">&quot;</span><a href="https://example.com/doc2.pdf">https://example.com/doc2.pdf</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"title"</span>: <span class="token string">&quot;Document 2&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"author"</span>: <span class="token string">&quot;Jane Smith&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"metadata"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"department"</span>: <span class="token string">&quot;Research&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjka_1" aria-labelledby="tab_R_jjka_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjka_2" aria-labelledby="tab_R_jjka_2"></div></div></div></div></div></div><div id="tag/Knowledge" data-section-id="tag/Knowledge" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Knowledge" aria-label="tag/Knowledge"></a>Knowledge</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;Knowledge graph core management (workspace-scoped)&lt;/p&gt;
"><p>Knowledge graph core management (workspace-scoped)</p>
</div></div></div><div id="tag/Knowledge/operation/knowledgeService" data-section-id="tag/Knowledge/operation/knowledgeService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/knowledgeService" id="operation/knowledgeService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Knowledge/operation/knowledgeService" aria-label="tag/Knowledge/operation/knowledgeService"></a>Knowledge graph core management (workspace-scoped)<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Manage knowledge graph cores - persistent storage of triples and
embeddings.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;workspace-scoped&lt;/strong&gt; service. All operations apply to the
workspace associated with the authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;knowledge-cores&quot;&gt;Knowledge Cores&lt;/h2&gt;
&lt;p&gt;Knowledge cores are the foundational storage units for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Triples&lt;/strong&gt;: RDF triples representing knowledge graph data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Graph Embeddings&lt;/strong&gt;: Vector embeddings for entities&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metadata&lt;/strong&gt;: Descriptive information about the knowledge&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each core has an ID and collection for organization (within the workspace).&lt;/p&gt;
&lt;h2 id=&quot;operations&quot;&gt;Operations&lt;/h2&gt;
&lt;h3 id=&quot;list-kg-cores&quot;&gt;list-kg-cores&lt;/h3&gt;
&lt;p&gt;List all knowledge cores in the workspace. Returns array of core IDs.&lt;/p&gt;
&lt;h3 id=&quot;get-kg-core&quot;&gt;get-kg-core&lt;/h3&gt;
&lt;p&gt;Retrieve a knowledge core by ID. Returns triples and/or graph embeddings.
Response is streamed - may receive multiple messages followed by EOS marker.&lt;/p&gt;
&lt;h3 id=&quot;put-kg-core&quot;&gt;put-kg-core&lt;/h3&gt;
&lt;p&gt;Store triples and/or graph embeddings. Creates new core or updates existing.
Can store triples only, embeddings only, or both together.&lt;/p&gt;
&lt;h3 id=&quot;delete-kg-core&quot;&gt;delete-kg-core&lt;/h3&gt;
&lt;p&gt;Delete a knowledge core by ID. Removes all associated data.&lt;/p&gt;
&lt;h3 id=&quot;load-kg-core&quot;&gt;load-kg-core&lt;/h3&gt;
&lt;p&gt;Load a knowledge core into a running flow&amp;#39;s collection.
Makes the data available for querying within that flow instance.&lt;/p&gt;
&lt;h3 id=&quot;unload-kg-core&quot;&gt;unload-kg-core&lt;/h3&gt;
&lt;p&gt;Unload a knowledge core from a flow&amp;#39;s collection.
Removes data from flow instance but doesn&amp;#39;t delete the core.&lt;/p&gt;
&lt;h2 id=&quot;streaming-responses&quot;&gt;Streaming Responses&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;get-kg-core&lt;/code&gt; operation streams data in chunks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Multiple messages with &lt;code&gt;triples&lt;/code&gt; or &lt;code&gt;graph-embeddings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Final message with &lt;code&gt;eos: true&lt;/code&gt; to signal completion&lt;/li&gt;
&lt;/ol&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Manage knowledge graph cores - persistent storage of triples and
embeddings.</p>
<p>This is a <strong>workspace-scoped</strong> service. All operations apply to the
workspace associated with the authenticated bearer token.</p>
<h2 id="knowledge-cores">Knowledge Cores</h2>
<p>Knowledge cores are the foundational storage units for:</p>
<ul>
<li><strong>Triples</strong>: RDF triples representing knowledge graph data</li>
<li><strong>Graph Embeddings</strong>: Vector embeddings for entities</li>
<li><strong>Metadata</strong>: Descriptive information about the knowledge</li>
</ul>
<p>Each core has an ID and collection for organization (within the workspace).</p>
<h2 id="operations">Operations</h2>
<h3 id="list-kg-cores">list-kg-cores</h3>
<p>List all knowledge cores in the workspace. Returns array of core IDs.</p>
<h3 id="get-kg-core">get-kg-core</h3>
<p>Retrieve a knowledge core by ID. Returns triples and/or graph embeddings.
Response is streamed - may receive multiple messages followed by EOS marker.</p>
<h3 id="put-kg-core">put-kg-core</h3>
<p>Store triples and/or graph embeddings. Creates new core or updates existing.
Can store triples only, embeddings only, or both together.</p>
<h3 id="delete-kg-core">delete-kg-core</h3>
<p>Delete a knowledge core by ID. Removes all associated data.</p>
<h3 id="load-kg-core">load-kg-core</h3>
<p>Load a knowledge core into a running flow&#39;s collection.
Makes the data available for querying within that flow instance.</p>
<h3 id="unload-kg-core">unload-kg-core</h3>
<p>Unload a knowledge core from a flow&#39;s collection.
Removes data from flow instance but doesn&#39;t delete the core.</p>
<h2 id="streaming-responses">Streaming Responses</h2>
<p>The <code>get-kg-core</code> operation streams data in chunks:</p>
<ol>
<li>Multiple messages with <code>triples</code> or <code>graph-embeddings</code></li>
<li>Final message with <code>eos: true</code> to signal completion</li>
</ol>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="operation" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">operation</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Enum<!-- -->:</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;list-kg-cores&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;get-kg-core&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;put-kg-core&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;delete-kg-core&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;load-kg-core&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;unload-kg-core&quot;</span> </div> <div><div html="&lt;p&gt;Knowledge core operation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list-kg-cores&lt;/code&gt;: List knowledge cores in the current workspace (resolved from token)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;get-kg-core&lt;/code&gt;: Get knowledge core by ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;put-kg-core&lt;/code&gt;: Store triples and/or embeddings&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete-kg-core&lt;/code&gt;: Delete knowledge core by ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;load-kg-core&lt;/code&gt;: Load knowledge core into flow&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unload-kg-core&lt;/code&gt;: Unload knowledge core from flow&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Knowledge core operation:</p>
<ul>
<li><code>list-kg-cores</code>: List knowledge cores in the current workspace (resolved from token)</li>
<li><code>get-kg-core</code>: Get knowledge core by ID</li>
<li><code>put-kg-core</code>: Store triples and/or embeddings</li>
<li><code>delete-kg-core</code>: Delete knowledge core by ID</li>
<li><code>load-kg-core</code>: Load knowledge core into flow</li>
<li><code>unload-kg-core</code>: Unload knowledge core from flow</li>
</ul>
</div></div></div></td></tr><tr class=""><td kind="field" title="id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">id</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Knowledge core ID (for get, put, delete, load, unload)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Knowledge core ID (for get, put, delete, load, unload)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Flow ID (for load-kg-core)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow ID (for load-kg-core)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection identifier (for load-kg-core)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection identifier (for load-kg-core)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="triples"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand triples"><span class="property-name">triples</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span></div> <div><div html="&lt;p&gt;Triples to store (for put-kg-core)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Triples to store (for put-kg-core)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="graph-embeddings"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand graph-embeddings"><span class="property-name">graph-embeddings</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span></div> <div><div html="&lt;p&gt;Graph embeddings to store (for put-kg-core)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Graph embeddings to store (for put-kg-core)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/knowledge</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/knowledge</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_ijkq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_ijkq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_ijkq_0" aria-labelledby="tab_R_ijkq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="List knowledge cores" selected="">List knowledge cores</option><option value="Get knowledge core">Get knowledge core</option><option value="Store triples">Store triples</option><option value="Store embeddings">Store embeddings</option><option value="Store triples and embeddings together">Store triples and embeddings together</option><option value="Delete knowledge core">Delete knowledge core</option><option value="Load core into flow">Load core into flow</option><option value="Unload core from flow">Unload core from flow</option></select><label>List knowledge cores</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"operation"</span>: <span class="token string">&quot;list-kg-cores&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_jjkq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_jjkq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_jjkq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjkq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_jjkq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjkq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_jjkq_0" aria-labelledby="tab_R_jjkq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="List of knowledge cores" selected="">List of knowledge cores</option><option value="Knowledge core triples (streaming)">Knowledge core triples (streaming)</option><option value="Knowledge core embeddings (streaming)">Knowledge core embeddings (streaming)</option><option value="End of stream marker">End of stream marker</option><option value="Delete successful (empty response)">Delete successful (empty response)</option></select><label>List of knowledge cores</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"ids"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;core-123&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;core-456&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;core-789&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjkq_1" aria-labelledby="tab_R_jjkq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjkq_2" aria-labelledby="tab_R_jjkq_2"></div></div></div></div></div></div><div id="tag/Collection" data-section-id="tag/Collection" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Collection" aria-label="tag/Collection"></a>Collection</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;Collection metadata management (workspace-scoped)&lt;/p&gt;
"><p>Collection metadata management (workspace-scoped)</p>
</div></div></div><div id="tag/Collection/operation/collectionManagementService" data-section-id="tag/Collection/operation/collectionManagementService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/collectionManagementService" id="operation/collectionManagementService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Collection/operation/collectionManagementService" aria-label="tag/Collection/operation/collectionManagementService"></a>Collection metadata management (workspace-scoped)<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Manage collection metadata for organizing documents and knowledge.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;workspace-scoped&lt;/strong&gt; service. All operations apply to the
workspace associated with the authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;collections&quot;&gt;Collections&lt;/h2&gt;
&lt;p&gt;Collections are organizational units for grouping:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Documents in the librarian&lt;/li&gt;
&lt;li&gt;Knowledge cores&lt;/li&gt;
&lt;li&gt;Workspace data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each collection has:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;collection&lt;/strong&gt;: Unique collection ID (within the workspace)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;name&lt;/strong&gt;: Human-readable display name&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;description&lt;/strong&gt;: Purpose and contents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tags&lt;/strong&gt;: Labels for filtering and organization&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;operations&quot;&gt;Operations&lt;/h2&gt;
&lt;h3 id=&quot;list-collections&quot;&gt;list-collections&lt;/h3&gt;
&lt;p&gt;List all collections in the workspace. Optionally filter by tags and limit results.
Returns array of collection metadata.&lt;/p&gt;
&lt;h3 id=&quot;update-collection&quot;&gt;update-collection&lt;/h3&gt;
&lt;p&gt;Create or update collection metadata. If collection doesn&amp;#39;t exist, it&amp;#39;s created.
If it exists, metadata is updated. Allows setting name, description, and tags.&lt;/p&gt;
&lt;h3 id=&quot;delete-collection&quot;&gt;delete-collection&lt;/h3&gt;
&lt;p&gt;Delete a collection by collection ID. This removes the metadata but
typically does not delete the associated data (documents, knowledge cores).&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Manage collection metadata for organizing documents and knowledge.</p>
<p>This is a <strong>workspace-scoped</strong> service. All operations apply to the
workspace associated with the authenticated bearer token.</p>
<h2 id="collections">Collections</h2>
<p>Collections are organizational units for grouping:</p>
<ul>
<li>Documents in the librarian</li>
<li>Knowledge cores</li>
<li>Workspace data</li>
</ul>
<p>Each collection has:</p>
<ul>
<li><strong>collection</strong>: Unique collection ID (within the workspace)</li>
<li><strong>name</strong>: Human-readable display name</li>
<li><strong>description</strong>: Purpose and contents</li>
<li><strong>tags</strong>: Labels for filtering and organization</li>
</ul>
<h2 id="operations">Operations</h2>
<h3 id="list-collections">list-collections</h3>
<p>List all collections in the workspace. Optionally filter by tags and limit results.
Returns array of collection metadata.</p>
<h3 id="update-collection">update-collection</h3>
<p>Create or update collection metadata. If collection doesn&#39;t exist, it&#39;s created.
If it exists, metadata is updated. Allows setting name, description, and tags.</p>
<h3 id="delete-collection">delete-collection</h3>
<p>Delete a collection by collection ID. This removes the metadata but
typically does not delete the associated data (documents, knowledge cores).</p>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="operation" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">operation</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Enum<!-- -->:</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;list-collections&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;update-collection&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;delete-collection&quot;</span> </div> <div><div html="&lt;p&gt;Collection operation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;list-collections&lt;/code&gt;: List collections in the current workspace (resolved from token)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;update-collection&lt;/code&gt;: Create or update collection metadata&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete-collection&lt;/code&gt;: Delete collection&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection operation:</p>
<ul>
<li><code>list-collections</code>: List collections in the current workspace (resolved from token)</li>
<li><code>update-collection</code>: Create or update collection metadata</li>
<li><code>delete-collection</code>: Delete collection</li>
</ul>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Collection identifier (for update, delete)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection identifier (for update, delete)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="timestamp" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">timestamp</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><div html="&lt;p&gt;ISO timestamp&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>ISO timestamp</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="name" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">name</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Human-readable collection name (for update)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Human-readable collection name (for update)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="description" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">description</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Collection description (for update)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection description (for update)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="tags" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">tags</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">strings</span></div> <div><div html="&lt;p&gt;Collection tags for organization (for update)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection tags for organization (for update)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="tag-filter" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">tag-filter</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">strings</span></div> <div><div html="&lt;p&gt;Filter collections by tags (for list)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Filter collections by tags (for list)</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="limit" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">limit</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">0</span></div> <div><div html="&lt;p&gt;Maximum number of results (for list)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum number of results (for list)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/collection-management</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/collection-management</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_ijla_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_ijla_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_ijla_0" aria-labelledby="tab_R_ijla_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="List all collections in workspace" selected="">List all collections in workspace</option><option value="List collections filtered by tags">List collections filtered by tags</option><option value="Create/update collection">Create/update collection</option><option value="Delete collection">Delete collection</option></select><label>List all collections in workspace</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"operation"</span>: <span class="token string">&quot;list-collections&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_jjla_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_jjla_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_jjla_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjla_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_jjla_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjla_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_jjla_0" aria-labelledby="tab_R_jjla_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="List of collections" selected="">List of collections</option><option value="Update successful">Update successful</option><option value="Delete successful">Delete successful</option></select><label>List of collections</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"timestamp"</span>: <span class="token string">&quot;2024-01-15T10:30:00Z&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collections"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;Research Papers&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"description"</span>: <span class="token string">&quot;Academic research papers on AI and ML&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;research&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;AI&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;academic&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"collection"</span>: <span class="token string">&quot;personal&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;Personal Documents&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"description"</span>: <span class="token string">&quot;Personal notes and documents&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"tags"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;personal&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjla_1" aria-labelledby="tab_R_jjla_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjla_2" aria-labelledby="tab_R_jjla_2"></div></div></div></div></div></div><div id="tag/Flow-Services" data-section-id="tag/Flow-Services" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services" aria-label="tag/Flow-Services"></a>Flow Services</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;AI and query services hosted within flow instances (flow-scoped)&lt;/p&gt;
"><p>AI and query services hosted within flow instances (flow-scoped)</p>
</div></div></div><div id="tag/Flow-Services/operation/agentService" data-section-id="tag/Flow-Services/operation/agentService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/agentService" id="operation/agentService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/agentService" aria-label="tag/Flow-Services/operation/agentService"></a>Agent service - conversational AI with reasoning<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;AI agent that can understand questions, reason about them, and take actions.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;agent-overview&quot;&gt;Agent Overview&lt;/h2&gt;
&lt;p&gt;The agent service provides a conversational AI that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Understands natural language questions&lt;/li&gt;
&lt;li&gt;Reasons about problems using thoughts&lt;/li&gt;
&lt;li&gt;Takes actions to gather information&lt;/li&gt;
&lt;li&gt;Provides coherent answers&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;request-format&quot;&gt;Request Format&lt;/h2&gt;
&lt;p&gt;Send a question with optional:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;state&lt;/strong&gt;: Continue from previous conversation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;history&lt;/strong&gt;: Previous agent steps for context&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;group&lt;/strong&gt;: Collaborative agent identifiers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;streaming&lt;/strong&gt;: Enable streaming responses&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;response-modes&quot;&gt;Response Modes&lt;/h2&gt;
&lt;h3 id=&quot;streaming-mode-streaming-true&quot;&gt;Streaming Mode (streaming: true)&lt;/h3&gt;
&lt;p&gt;Responses arrive as chunks with &lt;code&gt;chunk-type&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;thought&lt;/code&gt;: Agent&amp;#39;s reasoning process&lt;/li&gt;
&lt;li&gt;&lt;code&gt;action&lt;/code&gt;: Action being taken&lt;/li&gt;
&lt;li&gt;&lt;code&gt;observation&lt;/code&gt;: Result from action&lt;/li&gt;
&lt;li&gt;&lt;code&gt;answer&lt;/code&gt;: Final response to user&lt;/li&gt;
&lt;li&gt;&lt;code&gt;explain&lt;/code&gt;: Provenance event with inline triples (&lt;code&gt;explain_triples&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;error&lt;/code&gt;: Error occurred&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each chunk may have multiple messages. Check flags:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;end-of-message&lt;/code&gt;: Current chunk type complete&lt;/li&gt;
&lt;li&gt;&lt;code&gt;end-of-dialog&lt;/code&gt;: Entire conversation complete&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;legacy-mode-streaming-false&quot;&gt;Legacy Mode (streaming: false)&lt;/h3&gt;
&lt;p&gt;Single response with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;answer&lt;/code&gt;: Complete answer&lt;/li&gt;
&lt;li&gt;&lt;code&gt;thought&lt;/code&gt;: Reasoning (if any)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;observation&lt;/code&gt;: Observations (if any)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;multi-turn-conversations&quot;&gt;Multi-turn Conversations&lt;/h2&gt;
&lt;p&gt;Include &lt;code&gt;history&lt;/code&gt; array with previous steps to maintain context.
Each step has: thought, action, arguments, observation.&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>AI agent that can understand questions, reason about them, and take actions.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="agent-overview">Agent Overview</h2>
<p>The agent service provides a conversational AI that:</p>
<ul>
<li>Understands natural language questions</li>
<li>Reasons about problems using thoughts</li>
<li>Takes actions to gather information</li>
<li>Provides coherent answers</li>
</ul>
<h2 id="request-format">Request Format</h2>
<p>Send a question with optional:</p>
<ul>
<li><strong>state</strong>: Continue from previous conversation</li>
<li><strong>history</strong>: Previous agent steps for context</li>
<li><strong>group</strong>: Collaborative agent identifiers</li>
<li><strong>streaming</strong>: Enable streaming responses</li>
</ul>
<h2 id="response-modes">Response Modes</h2>
<h3 id="streaming-mode-streaming-true">Streaming Mode (streaming: true)</h3>
<p>Responses arrive as chunks with <code>chunk-type</code>:</p>
<ul>
<li><code>thought</code>: Agent&#39;s reasoning process</li>
<li><code>action</code>: Action being taken</li>
<li><code>observation</code>: Result from action</li>
<li><code>answer</code>: Final response to user</li>
<li><code>explain</code>: Provenance event with inline triples (<code>explain_triples</code>)</li>
<li><code>error</code>: Error occurred</li>
</ul>
<p>Each chunk may have multiple messages. Check flags:</p>
<ul>
<li><code>end-of-message</code>: Current chunk type complete</li>
<li><code>end-of-dialog</code>: Entire conversation complete</li>
</ul>
<h3 id="legacy-mode-streaming-false">Legacy Mode (streaming: false)</h3>
<p>Single response with:</p>
<ul>
<li><code>answer</code>: Complete answer</li>
<li><code>thought</code>: Reasoning (if any)</li>
<li><code>observation</code>: Observations (if any)</li>
</ul>
<h2 id="multi-turn-conversations">Multi-turn Conversations</h2>
<p>Include <code>history</code> array with previous steps to maintain context.
Each step has: thought, action, arguments, observation.</p>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="question" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">question</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;User question or prompt for the agent&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>User question or prompt for the agent</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="state" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">state</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Agent state for continuation (optional, for multi-turn)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Agent state for continuation (optional, for multi-turn)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="group" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">group</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">strings</span></div> <div><div html="&lt;p&gt;Group identifiers for collaborative agents (optional)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Group identifiers for collaborative agents (optional)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="history"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand history"><span class="property-name">history</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">objects</span></div> <div><div html="&lt;p&gt;Conversation history (optional, list of previous agent steps)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Conversation history (optional, list of previous agent steps)</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="streaming" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">streaming</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">boolean</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/agent</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/agent</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_991lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_991lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_991lq_0" aria-labelledby="tab_R_991lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Simple question" selected="">Simple question</option><option value="Question with streaming enabled">Question with streaming enabled</option><option value="Multi-turn conversation">Multi-turn conversation</option></select><label>Simple question</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"question"</span>: <span class="token string">&quot;What is the capital of France?&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9p1lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9p1lq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9p1lq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p1lq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9p1lq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p1lq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9p1lq_0" aria-labelledby="tab_R_9p1lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Streaming thought chunk" selected="">Streaming thought chunk</option><option value="Streaming answer chunk">Streaming answer chunk</option><option value="Streaming complete marker">Streaming complete marker</option><option value="Explain event with inline provenance triples">Explain event with inline provenance triples</option><option value="Legacy non-streaming response">Legacy non-streaming response</option></select><label>Streaming thought chunk</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"chunk-type"</span>: <span class="token string">&quot;thought&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"content"</span>: <span class="token string">&quot;I need to search for information about quantum computing&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"end-of-message"</span>: <span class="token boolean">false</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"end-of-dialog"</span>: <span class="token boolean">false</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p1lq_1" aria-labelledby="tab_R_9p1lq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p1lq_2" aria-labelledby="tab_R_9p1lq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/documentRagService" data-section-id="tag/Flow-Services/operation/documentRagService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/documentRagService" id="operation/documentRagService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/documentRagService" aria-label="tag/Flow-Services/operation/documentRagService"></a>Document RAG - retrieve and generate from documents<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Retrieval-Augmented Generation over document embeddings.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;document-rag-overview&quot;&gt;Document RAG Overview&lt;/h2&gt;
&lt;p&gt;Document RAG combines:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Retrieval&lt;/strong&gt;: Search document embeddings using semantic similarity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generation&lt;/strong&gt;: Use LLM to synthesize answer from retrieved documents&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This provides grounded answers based on your document corpus.&lt;/p&gt;
&lt;h2 id=&quot;query-process&quot;&gt;Query Process&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Convert query to embedding&lt;/li&gt;
&lt;li&gt;Search document embeddings for most similar chunks&lt;/li&gt;
&lt;li&gt;Retrieve top N document chunks (configurable via doc-limit)&lt;/li&gt;
&lt;li&gt;Pass query + retrieved context to LLM&lt;/li&gt;
&lt;li&gt;Generate answer grounded in documents&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;streaming&quot;&gt;Streaming&lt;/h2&gt;
&lt;p&gt;Enable &lt;code&gt;streaming: true&lt;/code&gt; to receive the answer as it&amp;#39;s generated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple &lt;code&gt;chunk&lt;/code&gt; messages with &lt;code&gt;response&lt;/code&gt; content&lt;/li&gt;
&lt;li&gt;&lt;code&gt;explain&lt;/code&gt; messages with inline provenance triples (&lt;code&gt;explain_triples&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Final message with &lt;code&gt;end-of-stream: true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Session ends with &lt;code&gt;end_of_session: true&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Explain events carry &lt;code&gt;explain_id&lt;/code&gt;, &lt;code&gt;explain_graph&lt;/code&gt;, and &lt;code&gt;explain_triples&lt;/code&gt;
inline in the stream, so no follow-up knowledge graph query is needed.&lt;/p&gt;
&lt;p&gt;Without streaming, returns complete answer in single response.&lt;/p&gt;
&lt;h2 id=&quot;parameters&quot;&gt;Parameters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;doc-limit&lt;/strong&gt;: Controls retrieval depth (1-100, default 20)&lt;ul&gt;
&lt;li&gt;Higher = more context but slower&lt;/li&gt;
&lt;li&gt;Lower = faster but may miss relevant info&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;collection&lt;/strong&gt;: Target specific document collection&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Retrieval-Augmented Generation over document embeddings.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="document-rag-overview">Document RAG Overview</h2>
<p>Document RAG combines:</p>
<ol>
<li><strong>Retrieval</strong>: Search document embeddings using semantic similarity</li>
<li><strong>Generation</strong>: Use LLM to synthesize answer from retrieved documents</li>
</ol>
<p>This provides grounded answers based on your document corpus.</p>
<h2 id="query-process">Query Process</h2>
<ol>
<li>Convert query to embedding</li>
<li>Search document embeddings for most similar chunks</li>
<li>Retrieve top N document chunks (configurable via doc-limit)</li>
<li>Pass query + retrieved context to LLM</li>
<li>Generate answer grounded in documents</li>
</ol>
<h2 id="streaming">Streaming</h2>
<p>Enable <code>streaming: true</code> to receive the answer as it&#39;s generated:</p>
<ul>
<li>Multiple <code>chunk</code> messages with <code>response</code> content</li>
<li><code>explain</code> messages with inline provenance triples (<code>explain_triples</code>)</li>
<li>Final message with <code>end-of-stream: true</code></li>
<li>Session ends with <code>end_of_session: true</code></li>
</ul>
<p>Explain events carry <code>explain_id</code>, <code>explain_graph</code>, and <code>explain_triples</code>
inline in the stream, so no follow-up knowledge graph query is needed.</p>
<p>Without streaming, returns complete answer in single response.</p>
<h2 id="parameters">Parameters</h2>
<ul>
<li><strong>doc-limit</strong>: Controls retrieval depth (1-100, default 20)<ul>
<li>Higher = more context but slower</li>
<li>Lower = faster but may miss relevant info</li>
</ul>
</li>
<li><strong>collection</strong>: Target specific document collection</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="query" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">query</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;User query or question&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>User query or question</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search within&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection to search within</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="doc-limit" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">doc-limit</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 100 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">20</span></div> <div><div html="&lt;p&gt;Maximum number of documents to retrieve&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum number of documents to retrieve</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="streaming" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">streaming</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">boolean</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/document-rag</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/document-rag</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_992lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_992lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_992lq_0" aria-labelledby="tab_R_992lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Basic document query" selected="">Basic document query</option><option value="Streaming query">Streaming query</option><option value="Query with limited retrieval">Query with limited retrieval</option></select><label>Basic document query</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"query"</span>: <span class="token string">&quot;What are the key findings in the research papers?&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9p2lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9p2lq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9p2lq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p2lq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9p2lq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p2lq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9p2lq_0" aria-labelledby="tab_R_9p2lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Complete non-streaming response" selected="">Complete non-streaming response</option><option value="Streaming response chunk">Streaming response chunk</option><option value="Explain event with inline provenance triples">Explain event with inline provenance triples</option><option value="Streaming complete marker">Streaming complete marker</option></select><label>Complete non-streaming response</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"response"</span>: <span class="token string">&quot;The research papers present three key findings:\n1. Quantum entanglement exhibits non-local correlations\n2. Bell's inequality is violated in experimental tests\n3. Applications in quantum cryptography are promising\n&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"end-of-stream"</span>: <span class="token boolean">false</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p2lq_1" aria-labelledby="tab_R_9p2lq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p2lq_2" aria-labelledby="tab_R_9p2lq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/graphRagService" data-section-id="tag/Flow-Services/operation/graphRagService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/graphRagService" id="operation/graphRagService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/graphRagService" aria-label="tag/Flow-Services/operation/graphRagService"></a>Graph RAG - retrieve and generate from knowledge graph<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Retrieval-Augmented Generation over knowledge graph.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;graph-rag-overview&quot;&gt;Graph RAG Overview&lt;/h2&gt;
&lt;p&gt;Graph RAG combines:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Retrieval&lt;/strong&gt;: Find relevant entities and subgraph from knowledge graph&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generation&lt;/strong&gt;: Use LLM to reason over graph structure and generate answer&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This provides graph-aware answers that leverage relationships and structure.&lt;/p&gt;
&lt;h2 id=&quot;query-process&quot;&gt;Query Process&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Identify relevant entities from query (using embeddings)&lt;/li&gt;
&lt;li&gt;Retrieve connected subgraph around entities&lt;/li&gt;
&lt;li&gt;Optionally traverse paths up to max-path-length hops&lt;/li&gt;
&lt;li&gt;Limit subgraph size to stay within context window&lt;/li&gt;
&lt;li&gt;Pass query + graph structure to LLM&lt;/li&gt;
&lt;li&gt;Generate answer incorporating graph relationships&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;streaming&quot;&gt;Streaming&lt;/h2&gt;
&lt;p&gt;Enable &lt;code&gt;streaming: true&lt;/code&gt; to receive the answer as it&amp;#39;s generated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple &lt;code&gt;chunk&lt;/code&gt; messages with &lt;code&gt;response&lt;/code&gt; content&lt;/li&gt;
&lt;li&gt;&lt;code&gt;explain&lt;/code&gt; messages with inline provenance triples (&lt;code&gt;explain_triples&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Final message with &lt;code&gt;end-of-stream: true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Session ends with &lt;code&gt;end_of_session: true&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Explain events carry &lt;code&gt;explain_id&lt;/code&gt;, &lt;code&gt;explain_graph&lt;/code&gt;, and &lt;code&gt;explain_triples&lt;/code&gt;
inline in the stream, so no follow-up knowledge graph query is needed.&lt;/p&gt;
&lt;p&gt;Without streaming, returns complete answer in single response.&lt;/p&gt;
&lt;h2 id=&quot;parameters&quot;&gt;Parameters&lt;/h2&gt;
&lt;p&gt;Control retrieval scope with multiple knobs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;entity-limit&lt;/strong&gt;: How many starting entities to find (1-200, default 50)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;triple-limit&lt;/strong&gt;: Triples per entity (1-100, default 30)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;max-subgraph-size&lt;/strong&gt;: Total subgraph cap (10-5000, default 1000)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;max-path-length&lt;/strong&gt;: Graph traversal depth (1-5, default 2)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Higher limits = more context but:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Slower retrieval&lt;/li&gt;
&lt;li&gt;Larger context for LLM&lt;/li&gt;
&lt;li&gt;May hit context window limits&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;p&gt;Best for queries requiring:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Relationship understanding (&amp;quot;How are X and Y connected?&amp;quot;)&lt;/li&gt;
&lt;li&gt;Multi-hop reasoning (&amp;quot;What&amp;#39;s the path from A to B?&amp;quot;)&lt;/li&gt;
&lt;li&gt;Structural analysis (&amp;quot;What are the main entities related to X?&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Retrieval-Augmented Generation over knowledge graph.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="graph-rag-overview">Graph RAG Overview</h2>
<p>Graph RAG combines:</p>
<ol>
<li><strong>Retrieval</strong>: Find relevant entities and subgraph from knowledge graph</li>
<li><strong>Generation</strong>: Use LLM to reason over graph structure and generate answer</li>
</ol>
<p>This provides graph-aware answers that leverage relationships and structure.</p>
<h2 id="query-process">Query Process</h2>
<ol>
<li>Identify relevant entities from query (using embeddings)</li>
<li>Retrieve connected subgraph around entities</li>
<li>Optionally traverse paths up to max-path-length hops</li>
<li>Limit subgraph size to stay within context window</li>
<li>Pass query + graph structure to LLM</li>
<li>Generate answer incorporating graph relationships</li>
</ol>
<h2 id="streaming">Streaming</h2>
<p>Enable <code>streaming: true</code> to receive the answer as it&#39;s generated:</p>
<ul>
<li>Multiple <code>chunk</code> messages with <code>response</code> content</li>
<li><code>explain</code> messages with inline provenance triples (<code>explain_triples</code>)</li>
<li>Final message with <code>end-of-stream: true</code></li>
<li>Session ends with <code>end_of_session: true</code></li>
</ul>
<p>Explain events carry <code>explain_id</code>, <code>explain_graph</code>, and <code>explain_triples</code>
inline in the stream, so no follow-up knowledge graph query is needed.</p>
<p>Without streaming, returns complete answer in single response.</p>
<h2 id="parameters">Parameters</h2>
<p>Control retrieval scope with multiple knobs:</p>
<ul>
<li><strong>entity-limit</strong>: How many starting entities to find (1-200, default 50)</li>
<li><strong>triple-limit</strong>: Triples per entity (1-100, default 30)</li>
<li><strong>max-subgraph-size</strong>: Total subgraph cap (10-5000, default 1000)</li>
<li><strong>max-path-length</strong>: Graph traversal depth (1-5, default 2)</li>
</ul>
<p>Higher limits = more context but:</p>
<ul>
<li>Slower retrieval</li>
<li>Larger context for LLM</li>
<li>May hit context window limits</li>
</ul>
<h2 id="use-cases">Use Cases</h2>
<p>Best for queries requiring:</p>
<ul>
<li>Relationship understanding (&quot;How are X and Y connected?&quot;)</li>
<li>Multi-hop reasoning (&quot;What&#39;s the path from A to B?&quot;)</li>
<li>Structural analysis (&quot;What are the main entities related to X?&quot;)</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="query" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">query</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;User query or question&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>User query or question</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search within&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection to search within</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="entity-limit" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">entity-limit</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 200 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">50</span></div> <div><div html="&lt;p&gt;Maximum number of entities to retrieve&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum number of entities to retrieve</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="triple-limit" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">triple-limit</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 100 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">30</span></div> <div><div html="&lt;p&gt;Maximum number of triples to retrieve per entity&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum number of triples to retrieve per entity</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="max-subgraph-size" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">max-subgraph-size</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 10 .. 5000 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">1000</span></div> <div><div html="&lt;p&gt;Maximum total subgraph size (triples)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum total subgraph size (triples)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="max-path-length" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">max-path-length</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 5 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">2</span></div> <div><div html="&lt;p&gt;Maximum path length for graph traversal&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum path length for graph traversal</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="streaming" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">streaming</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">boolean</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/graph-rag</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/graph-rag</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_993lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_993lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_993lq_0" aria-labelledby="tab_R_993lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Basic graph query" selected="">Basic graph query</option><option value="Streaming query with custom limits">Streaming query with custom limits</option><option value="Focused query with tight limits">Focused query with tight limits</option></select><label>Basic graph query</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"query"</span>: <span class="token string">&quot;What connections exist between quantum physics and computer science?&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9p3lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9p3lq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9p3lq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p3lq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9p3lq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p3lq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9p3lq_0" aria-labelledby="tab_R_9p3lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Complete non-streaming response" selected="">Complete non-streaming response</option><option value="Streaming response chunk">Streaming response chunk</option><option value="Explain event with inline provenance triples">Explain event with inline provenance triples</option><option value="Streaming complete marker">Streaming complete marker</option></select><label>Complete non-streaming response</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"response"</span>: <span class="token string">&quot;Quantum physics and computer science intersect primarily through quantum computing.\nThe knowledge graph shows connections through:\n- Quantum algorithms (Shor's algorithm, Grover's algorithm)\n- Quantum information theory\n- Computational complexity theory\n&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"end-of-stream"</span>: <span class="token boolean">false</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p3lq_1" aria-labelledby="tab_R_9p3lq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p3lq_2" aria-labelledby="tab_R_9p3lq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/textCompletionService" data-section-id="tag/Flow-Services/operation/textCompletionService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/textCompletionService" id="operation/textCompletionService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/textCompletionService" aria-label="tag/Flow-Services/operation/textCompletionService"></a>Text completion - direct LLM generation<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Direct text completion using LLM without retrieval augmentation.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;text-completion-overview&quot;&gt;Text Completion Overview&lt;/h2&gt;
&lt;p&gt;Pure LLM generation for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;General knowledge questions&lt;/li&gt;
&lt;li&gt;Creative writing&lt;/li&gt;
&lt;li&gt;Code generation&lt;/li&gt;
&lt;li&gt;Analysis and reasoning&lt;/li&gt;
&lt;li&gt;Any task not requiring specific document/graph context&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;system-vs-prompt&quot;&gt;System vs Prompt&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;system&lt;/strong&gt;: Sets LLM behavior, role, constraints&lt;ul&gt;
&lt;li&gt;&amp;quot;You are a helpful assistant&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;You are an expert Python developer&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;Respond in JSON format&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;prompt&lt;/strong&gt;: The actual user request/question&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;streaming&quot;&gt;Streaming&lt;/h2&gt;
&lt;p&gt;Enable &lt;code&gt;streaming: true&lt;/code&gt; to receive tokens as generated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Multiple messages with partial &lt;code&gt;response&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Final message with &lt;code&gt;end-of-stream: true&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Without streaming, returns complete response in single message.&lt;/p&gt;
&lt;h2 id=&quot;token-counting&quot;&gt;Token Counting&lt;/h2&gt;
&lt;p&gt;Response includes token usage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;in-token&lt;/code&gt;: Input tokens (system + prompt)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;out-token&lt;/code&gt;: Generated tokens&lt;/li&gt;
&lt;li&gt;Useful for cost tracking and optimization&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;when-to-use&quot;&gt;When to Use&lt;/h2&gt;
&lt;p&gt;Use text-completion when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No specific context needed (general knowledge)&lt;/li&gt;
&lt;li&gt;System prompt provides sufficient context&lt;/li&gt;
&lt;li&gt;Want direct control over prompting&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use document-rag/graph-rag when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Need to ground response in specific documents&lt;/li&gt;
&lt;li&gt;Want to leverage knowledge graph relationships&lt;/li&gt;
&lt;li&gt;Require citations or provenance&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Direct text completion using LLM without retrieval augmentation.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="text-completion-overview">Text Completion Overview</h2>
<p>Pure LLM generation for:</p>
<ul>
<li>General knowledge questions</li>
<li>Creative writing</li>
<li>Code generation</li>
<li>Analysis and reasoning</li>
<li>Any task not requiring specific document/graph context</li>
</ul>
<h2 id="system-vs-prompt">System vs Prompt</h2>
<ul>
<li><strong>system</strong>: Sets LLM behavior, role, constraints<ul>
<li>&quot;You are a helpful assistant&quot;</li>
<li>&quot;You are an expert Python developer&quot;</li>
<li>&quot;Respond in JSON format&quot;</li>
</ul>
</li>
<li><strong>prompt</strong>: The actual user request/question</li>
</ul>
<h2 id="streaming">Streaming</h2>
<p>Enable <code>streaming: true</code> to receive tokens as generated:</p>
<ul>
<li>Multiple messages with partial <code>response</code></li>
<li>Final message with <code>end-of-stream: true</code></li>
</ul>
<p>Without streaming, returns complete response in single message.</p>
<h2 id="token-counting">Token Counting</h2>
<p>Response includes token usage:</p>
<ul>
<li><code>in-token</code>: Input tokens (system + prompt)</li>
<li><code>out-token</code>: Generated tokens</li>
<li>Useful for cost tracking and optimization</li>
</ul>
<h2 id="when-to-use">When to Use</h2>
<p>Use text-completion when:</p>
<ul>
<li>No specific context needed (general knowledge)</li>
<li>System prompt provides sufficient context</li>
<li>Want direct control over prompting</li>
</ul>
<p>Use document-rag/graph-rag when:</p>
<ul>
<li>Need to ground response in specific documents</li>
<li>Want to leverage knowledge graph relationships</li>
<li>Require citations or provenance</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="system" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">system</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;System prompt that sets behavior and context for the LLM&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>System prompt that sets behavior and context for the LLM</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="prompt" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">prompt</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;User prompt or question&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>User prompt or question</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="streaming" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">streaming</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">boolean</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/text-completion</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/text-completion</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_994lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_994lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_994lq_0" aria-labelledby="tab_R_994lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Basic text completion" selected="">Basic text completion</option><option value="Code generation with streaming">Code generation with streaming</option><option value="Structured output request">Structured output request</option></select><label>Basic text completion</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"system"</span>: <span class="token string">&quot;You are a helpful assistant that provides concise answers.&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"prompt"</span>: <span class="token string">&quot;Explain the concept of recursion in programming.&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9p4lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9p4lq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9p4lq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p4lq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9p4lq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p4lq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9p4lq_0" aria-labelledby="tab_R_9p4lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Complete non-streaming response" selected="">Complete non-streaming response</option><option value="Streaming response chunk">Streaming response chunk</option><option value="Streaming complete with tokens">Streaming complete with tokens</option></select><label>Complete non-streaming response</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"response"</span>: <span class="token string">&quot;Recursion is a programming technique where a function calls itself\nto solve a problem by breaking it down into smaller, similar subproblems.\nEach recursive call works on a simpler version until reaching a base case.\n&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"in-token"</span>: <span class="token number">45</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"out-token"</span>: <span class="token number">128</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"model"</span>: <span class="token string">&quot;gpt-4&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"end-of-stream"</span>: <span class="token boolean">false</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p4lq_1" aria-labelledby="tab_R_9p4lq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p4lq_2" aria-labelledby="tab_R_9p4lq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/promptService" data-section-id="tag/Flow-Services/operation/promptService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/promptService" id="operation/promptService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/promptService" aria-label="tag/Flow-Services/operation/promptService"></a>Prompt service - template-based generation<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Execute stored prompt templates with variable substitution.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;prompt-service-overview&quot;&gt;Prompt Service Overview&lt;/h2&gt;
&lt;p&gt;The prompt service enables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reusable prompt templates stored in configuration&lt;/li&gt;
&lt;li&gt;Variable substitution for dynamic prompts&lt;/li&gt;
&lt;li&gt;Consistent prompt engineering across requests&lt;/li&gt;
&lt;li&gt;Text or structured object outputs&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;template-system&quot;&gt;Template System&lt;/h2&gt;
&lt;p&gt;Prompts are stored via config service (&lt;code&gt;/api/v1/config&lt;/code&gt;) with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;id&lt;/strong&gt;: Unique prompt identifier&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;template&lt;/strong&gt;: Prompt text with &lt;code&gt;{variable}&lt;/code&gt; placeholders&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;system&lt;/strong&gt;: Optional system prompt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;output_format&lt;/strong&gt;: &amp;quot;text&amp;quot; or &amp;quot;object&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example template:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Summarize the following document &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;max_length&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; words&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;document&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;variable-substitution&quot;&gt;Variable Substitution&lt;/h2&gt;
&lt;p&gt;Two ways to pass variables:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;terms&lt;/strong&gt; (explicit JSON strings):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;terms&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;document&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;\&quot;Text here...\&quot;&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;max_length&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;\&quot;200\&quot;&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;variables&lt;/strong&gt; (auto-converted):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;variables&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;document&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Text here...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;max_length&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;output-types&quot;&gt;Output Types&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;text&lt;/strong&gt;: Plain text response in &lt;code&gt;text&lt;/code&gt; field&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;object&lt;/strong&gt;: Structured JSON in &lt;code&gt;object&lt;/code&gt; field (as string)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;streaming&quot;&gt;Streaming&lt;/h2&gt;
&lt;p&gt;Enable &lt;code&gt;streaming: true&lt;/code&gt; to receive response incrementally.&lt;/p&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Document summarization&lt;/li&gt;
&lt;li&gt;Entity extraction&lt;/li&gt;
&lt;li&gt;Classification tasks&lt;/li&gt;
&lt;li&gt;Data transformation&lt;/li&gt;
&lt;li&gt;Any repeatable LLM task with consistent prompting&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Execute stored prompt templates with variable substitution.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="prompt-service-overview">Prompt Service Overview</h2>
<p>The prompt service enables:</p>
<ul>
<li>Reusable prompt templates stored in configuration</li>
<li>Variable substitution for dynamic prompts</li>
<li>Consistent prompt engineering across requests</li>
<li>Text or structured object outputs</li>
</ul>
<h2 id="template-system">Template System</h2>
<p>Prompts are stored via config service (<code>/api/v1/config</code>) with:</p>
<ul>
<li><strong>id</strong>: Unique prompt identifier</li>
<li><strong>template</strong>: Prompt text with <code>{variable}</code> placeholders</li>
<li><strong>system</strong>: Optional system prompt</li>
<li><strong>output_format</strong>: &quot;text&quot; or &quot;object&quot;</li>
</ul>
<p>Example template:</p>
<pre><code>Summarize the following document <span class="token keyword">in</span> <span class="token punctuation">{</span>max_length<span class="token punctuation">}</span> words<span class="token punctuation">:</span>
<span class="token punctuation">{</span>document<span class="token punctuation">}</span>
</code></pre>
<h2 id="variable-substitution">Variable Substitution</h2>
<p>Two ways to pass variables:</p>
<ol>
<li><p><strong>terms</strong> (explicit JSON strings):</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"terms"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token string-property property">"document"</span><span class="token operator">:</span> <span class="token string">"\"Text here...\""</span><span class="token punctuation">,</span>
<span class="token string-property property">"max_length"</span><span class="token operator">:</span> <span class="token string">"\"200\""</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</li>
<li><p><strong>variables</strong> (auto-converted):</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"variables"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token string-property property">"document"</span><span class="token operator">:</span> <span class="token string">"Text here..."</span><span class="token punctuation">,</span>
<span class="token string-property property">"max_length"</span><span class="token operator">:</span> <span class="token number">200</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</li>
</ol>
<h2 id="output-types">Output Types</h2>
<ul>
<li><strong>text</strong>: Plain text response in <code>text</code> field</li>
<li><strong>object</strong>: Structured JSON in <code>object</code> field (as string)</li>
</ul>
<h2 id="streaming">Streaming</h2>
<p>Enable <code>streaming: true</code> to receive response incrementally.</p>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li>Document summarization</li>
<li>Entity extraction</li>
<li>Classification tasks</li>
<li>Data transformation</li>
<li>Any repeatable LLM task with consistent prompting</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">id</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Prompt template ID (stored in config)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Prompt template ID (stored in config)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="terms"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand terms"><span class="property-name">terms</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span></div> <div><div html="&lt;p&gt;Template variables as key-value pairs (values are JSON strings)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Template variables as key-value pairs (values are JSON strings)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="variables"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand variables"><span class="property-name">variables</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span></div> <div><div html="&lt;p&gt;Alternative to terms - variables as native JSON values (auto-converted)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Alternative to terms - variables as native JSON values (auto-converted)</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="streaming" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">streaming</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">boolean</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/prompt</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/prompt</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_995lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_995lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_995lq_0" aria-labelledby="tab_R_995lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Using terms (JSON strings)" selected="">Using terms (JSON strings)</option><option value="Using variables (auto-converted)">Using variables (auto-converted)</option><option value="Streaming response">Streaming response</option></select><label>Using terms (JSON strings)</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"id"</span>: <span class="token string">&quot;summarize-document&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"terms"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"document"</span>: <span class="token string">&quot;\&quot;This document discusses quantum computing, covering qubits, superposition, and entanglement. Applications include cryptography and optimization.\&quot;&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"max_length"</span>: <span class="token string">&quot;\&quot;50\&quot;&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9p5lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9p5lq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9p5lq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p5lq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9p5lq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p5lq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9p5lq_0" aria-labelledby="tab_R_9p5lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Text output" selected="">Text output</option><option value="Structured output">Structured output</option><option value="Streaming chunk">Streaming chunk</option><option value="Streaming complete">Streaming complete</option></select><label>Text output</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"text"</span>: <span class="token string">&quot;This document provides an overview of quantum computing fundamentals and cryptographic applications.&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"end-of-stream"</span>: <span class="token boolean">false</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p5lq_1" aria-labelledby="tab_R_9p5lq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p5lq_2" aria-labelledby="tab_R_9p5lq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/embeddingsService" data-section-id="tag/Flow-Services/operation/embeddingsService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/embeddingsService" id="operation/embeddingsService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/embeddingsService" aria-label="tag/Flow-Services/operation/embeddingsService"></a>Embeddings - text to vector conversion<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Convert text to embedding vectors for semantic similarity search.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;embeddings-overview&quot;&gt;Embeddings Overview&lt;/h2&gt;
&lt;p&gt;Embeddings transform text into dense vector representations that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Capture semantic meaning&lt;/li&gt;
&lt;li&gt;Enable similarity comparisons via cosine distance&lt;/li&gt;
&lt;li&gt;Support semantic search and retrieval&lt;/li&gt;
&lt;li&gt;Power RAG systems&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Document indexing&lt;/strong&gt;: Convert documents to vectors for storage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query encoding&lt;/strong&gt;: Convert search queries for similarity matching&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Semantic similarity&lt;/strong&gt;: Find related texts via vector distance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clustering&lt;/strong&gt;: Group similar content&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Classification&lt;/strong&gt;: Use as features for ML models&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;vector-dimensions&quot;&gt;Vector Dimensions&lt;/h2&gt;
&lt;p&gt;Dimension count depends on embedding model:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;text-embedding-ada-002: 1536 dimensions&lt;/li&gt;
&lt;li&gt;text-embedding-3-small: 1536 dimensions&lt;/li&gt;
&lt;li&gt;text-embedding-3-large: 3072 dimensions&lt;/li&gt;
&lt;li&gt;Custom models: Varies&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;single-request&quot;&gt;Single Request&lt;/h2&gt;
&lt;p&gt;Unlike batch embedding APIs, this endpoint processes one text at a time.
For bulk operations, use document-load or text-load services.&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Convert text to embedding vectors for semantic similarity search.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="embeddings-overview">Embeddings Overview</h2>
<p>Embeddings transform text into dense vector representations that:</p>
<ul>
<li>Capture semantic meaning</li>
<li>Enable similarity comparisons via cosine distance</li>
<li>Support semantic search and retrieval</li>
<li>Power RAG systems</li>
</ul>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li><strong>Document indexing</strong>: Convert documents to vectors for storage</li>
<li><strong>Query encoding</strong>: Convert search queries for similarity matching</li>
<li><strong>Semantic similarity</strong>: Find related texts via vector distance</li>
<li><strong>Clustering</strong>: Group similar content</li>
<li><strong>Classification</strong>: Use as features for ML models</li>
</ul>
<h2 id="vector-dimensions">Vector Dimensions</h2>
<p>Dimension count depends on embedding model:</p>
<ul>
<li>text-embedding-ada-002: 1536 dimensions</li>
<li>text-embedding-3-small: 1536 dimensions</li>
<li>text-embedding-3-large: 3072 dimensions</li>
<li>Custom models: Varies</li>
</ul>
<h2 id="single-request">Single Request</h2>
<p>Unlike batch embedding APIs, this endpoint processes one text at a time.
For bulk operations, use document-load or text-load services.</p>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="text" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">text</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Text to convert to embedding vector&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Text to convert to embedding vector</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/embeddings</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/embeddings</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_996lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_996lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_996lq_0" aria-labelledby="tab_R_996lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Short text embedding" selected="">Short text embedding</option><option value="Sentence embedding">Sentence embedding</option><option value="Paragraph embedding">Paragraph embedding</option></select><label>Short text embedding</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"text"</span>: <span class="token string">&quot;Machine learning&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9p6lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9p6lq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9p6lq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p6lq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9p6lq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p6lq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9p6lq_0" aria-labelledby="tab_R_9p6lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"vectors"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0.023</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.142</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.089</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.234</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.067</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.156</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.201</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.178</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.045</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.312</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p6lq_1" aria-labelledby="tab_R_9p6lq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p6lq_2" aria-labelledby="tab_R_9p6lq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/mcpToolService" data-section-id="tag/Flow-Services/operation/mcpToolService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/mcpToolService" id="operation/mcpToolService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/mcpToolService" aria-label="tag/Flow-Services/operation/mcpToolService"></a>MCP Tool - execute Model Context Protocol tools<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Execute MCP (Model Context Protocol) tools for agent capabilities.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;mcp-tool-overview&quot;&gt;MCP Tool Overview&lt;/h2&gt;
&lt;p&gt;MCP tools provide agent capabilities through standardized protocol:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Search tools&lt;/strong&gt;: Web search, document search&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data tools&lt;/strong&gt;: Database queries, API calls&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Action tools&lt;/strong&gt;: File operations, system commands&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integration tools&lt;/strong&gt;: Third-party service connectors&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tools extend agent capabilities beyond pure LLM generation.&lt;/p&gt;
&lt;h2 id=&quot;tool-execution&quot;&gt;Tool Execution&lt;/h2&gt;
&lt;p&gt;Tools are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Registered via MCP protocol&lt;/li&gt;
&lt;li&gt;Discovered by agent&lt;/li&gt;
&lt;li&gt;Called with structured parameters&lt;/li&gt;
&lt;li&gt;Return text or structured results&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;request-format&quot;&gt;Request Format&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;name&lt;/strong&gt;: Tool identifier (e.g., &amp;quot;search&amp;quot;, &amp;quot;calculator&amp;quot;, &amp;quot;weather&amp;quot;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;parameters&lt;/strong&gt;: Tool-specific arguments as JSON object&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;response-format&quot;&gt;Response Format&lt;/h2&gt;
&lt;p&gt;Tools can return:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;text&lt;/strong&gt;: Plain text result (simple tools)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;object&lt;/strong&gt;: Structured JSON result (complex tools)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;tool-registration&quot;&gt;Tool Registration&lt;/h2&gt;
&lt;p&gt;Tools are registered via MCP server configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define tool schema (name, parameters, description)&lt;/li&gt;
&lt;li&gt;Implement tool handler&lt;/li&gt;
&lt;li&gt;Register with MCP server&lt;/li&gt;
&lt;li&gt;Agent discovers and uses tool&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Web search&lt;/strong&gt;: Find external information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Calculator&lt;/strong&gt;: Perform calculations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Database query&lt;/strong&gt;: Retrieve structured data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API integration&lt;/strong&gt;: Call external services&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File operations&lt;/strong&gt;: Read/write files&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code execution&lt;/strong&gt;: Run scripts&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Execute MCP (Model Context Protocol) tools for agent capabilities.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="mcp-tool-overview">MCP Tool Overview</h2>
<p>MCP tools provide agent capabilities through standardized protocol:</p>
<ul>
<li><strong>Search tools</strong>: Web search, document search</li>
<li><strong>Data tools</strong>: Database queries, API calls</li>
<li><strong>Action tools</strong>: File operations, system commands</li>
<li><strong>Integration tools</strong>: Third-party service connectors</li>
</ul>
<p>Tools extend agent capabilities beyond pure LLM generation.</p>
<h2 id="tool-execution">Tool Execution</h2>
<p>Tools are:</p>
<ol>
<li>Registered via MCP protocol</li>
<li>Discovered by agent</li>
<li>Called with structured parameters</li>
<li>Return text or structured results</li>
</ol>
<h2 id="request-format">Request Format</h2>
<ul>
<li><strong>name</strong>: Tool identifier (e.g., &quot;search&quot;, &quot;calculator&quot;, &quot;weather&quot;)</li>
<li><strong>parameters</strong>: Tool-specific arguments as JSON object</li>
</ul>
<h2 id="response-format">Response Format</h2>
<p>Tools can return:</p>
<ul>
<li><strong>text</strong>: Plain text result (simple tools)</li>
<li><strong>object</strong>: Structured JSON result (complex tools)</li>
</ul>
<h2 id="tool-registration">Tool Registration</h2>
<p>Tools are registered via MCP server configuration:</p>
<ul>
<li>Define tool schema (name, parameters, description)</li>
<li>Implement tool handler</li>
<li>Register with MCP server</li>
<li>Agent discovers and uses tool</li>
</ul>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li><strong>Web search</strong>: Find external information</li>
<li><strong>Calculator</strong>: Perform calculations</li>
<li><strong>Database query</strong>: Retrieve structured data</li>
<li><strong>API integration</strong>: Call external services</li>
<li><strong>File operations</strong>: Read/write files</li>
<li><strong>Code execution</strong>: Run scripts</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="name" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">name</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Tool name to execute&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Tool name to execute</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="parameters"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand parameters"><span class="property-name">parameters</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span></div> <div><div html="&lt;p&gt;Tool parameters (JSON object, auto-converted to string internally)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Tool parameters (JSON object, auto-converted to string internally)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/mcp-tool</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/mcp-tool</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_997lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_997lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_997lq_0" aria-labelledby="tab_R_997lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Search tool execution" selected="">Search tool execution</option><option value="Calculator tool">Calculator tool</option><option value="Weather tool">Weather tool</option></select><label>Search tool execution</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"name"</span>: <span class="token string">&quot;search&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"parameters"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"query"</span>: <span class="token string">&quot;quantum computing&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"limit"</span>: <span class="token number">10</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9p7lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9p7lq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9p7lq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p7lq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9p7lq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p7lq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9p7lq_0" aria-labelledby="tab_R_9p7lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Text result" selected="">Text result</option><option value="Structured result">Structured result</option></select><label>Text result</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"text"</span>: <span class="token string">&quot;The result is 309&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p7lq_1" aria-labelledby="tab_R_9p7lq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p7lq_2" aria-labelledby="tab_R_9p7lq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/triplesQueryService" data-section-id="tag/Flow-Services/operation/triplesQueryService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/triplesQueryService" id="operation/triplesQueryService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/triplesQueryService" aria-label="tag/Flow-Services/operation/triplesQueryService"></a>Triples query - pattern-based graph queries<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Query knowledge graph using subject-predicate-object patterns.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;triples-query-overview&quot;&gt;Triples Query Overview&lt;/h2&gt;
&lt;p&gt;Query RDF triples with flexible pattern matching:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Specify subject, predicate, and/or object&lt;/li&gt;
&lt;li&gt;Any combination of filters (all optional)&lt;/li&gt;
&lt;li&gt;Returns matching triples up to limit&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;pattern-matching&quot;&gt;Pattern Matching&lt;/h2&gt;
&lt;p&gt;Pattern syntax supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;All triples&lt;/strong&gt;: Omit all filters (returns everything up to limit)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Subject match&lt;/strong&gt;: Specify &lt;code&gt;s&lt;/code&gt; only (all triples about that subject)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Predicate match&lt;/strong&gt;: Specify &lt;code&gt;p&lt;/code&gt; only (all uses of that property)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Object match&lt;/strong&gt;: Specify &lt;code&gt;o&lt;/code&gt; only (all triples with that value)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Combinations&lt;/strong&gt;: Any combination of s/p/o&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;rdf-value-format&quot;&gt;RDF Value Format&lt;/h2&gt;
&lt;p&gt;Each component (s/p/o) uses RdfValue format:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Entity/URI&lt;/strong&gt;: &lt;code&gt;{&amp;quot;v&amp;quot;: &amp;quot;https://example.com/entity&amp;quot;, &amp;quot;e&amp;quot;: true}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Literal&lt;/strong&gt;: &lt;code&gt;{&amp;quot;v&amp;quot;: &amp;quot;Some text&amp;quot;, &amp;quot;e&amp;quot;: false}&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;query-examples&quot;&gt;Query Examples&lt;/h2&gt;
&lt;p&gt;Find all properties of an entity:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;s&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;v&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;https://example.com/person/alice&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Find all instances of a type:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;p&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;v&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;o&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;v&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;https://example.com/type/Person&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Find specific relationship:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;s&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;v&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;https://example.com/person/alice&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;p&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;v&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;https://example.com/knows&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;performance&quot;&gt;Performance&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Default limit: 10,000 triples&lt;/li&gt;
&lt;li&gt;Max limit: 100,000 triples&lt;/li&gt;
&lt;li&gt;More specific patterns = faster queries&lt;/li&gt;
&lt;li&gt;Consider limit for large result sets&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Query knowledge graph using subject-predicate-object patterns.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="triples-query-overview">Triples Query Overview</h2>
<p>Query RDF triples with flexible pattern matching:</p>
<ul>
<li>Specify subject, predicate, and/or object</li>
<li>Any combination of filters (all optional)</li>
<li>Returns matching triples up to limit</li>
</ul>
<h2 id="pattern-matching">Pattern Matching</h2>
<p>Pattern syntax supports:</p>
<ul>
<li><strong>All triples</strong>: Omit all filters (returns everything up to limit)</li>
<li><strong>Subject match</strong>: Specify <code>s</code> only (all triples about that subject)</li>
<li><strong>Predicate match</strong>: Specify <code>p</code> only (all uses of that property)</li>
<li><strong>Object match</strong>: Specify <code>o</code> only (all triples with that value)</li>
<li><strong>Combinations</strong>: Any combination of s/p/o</li>
</ul>
<h2 id="rdf-value-format">RDF Value Format</h2>
<p>Each component (s/p/o) uses RdfValue format:</p>
<ul>
<li><strong>Entity/URI</strong>: <code>{&quot;v&quot;: &quot;https://example.com/entity&quot;, &quot;e&quot;: true}</code></li>
<li><strong>Literal</strong>: <code>{&quot;v&quot;: &quot;Some text&quot;, &quot;e&quot;: false}</code></li>
</ul>
<h2 id="query-examples">Query Examples</h2>
<p>Find all properties of an entity:</p>
<pre><code class="language-json"><span class="token punctuation">{</span><span class="token string-property property">"s"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token string-property property">"v"</span><span class="token operator">:</span> <span class="token string">"https://example.com/person/alice"</span><span class="token punctuation">,</span> <span class="token string-property property">"e"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
</code></pre>
<p>Find all instances of a type:</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"p"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token string-property property">"v"</span><span class="token operator">:</span> <span class="token string">"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"</span><span class="token punctuation">,</span> <span class="token string-property property">"e"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token string-property property">"o"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token string-property property">"v"</span><span class="token operator">:</span> <span class="token string">"https://example.com/type/Person"</span><span class="token punctuation">,</span> <span class="token string-property property">"e"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<p>Find specific relationship:</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"s"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token string-property property">"v"</span><span class="token operator">:</span> <span class="token string">"https://example.com/person/alice"</span><span class="token punctuation">,</span> <span class="token string-property property">"e"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token string-property property">"p"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token string-property property">"v"</span><span class="token operator">:</span> <span class="token string">"https://example.com/knows"</span><span class="token punctuation">,</span> <span class="token string-property property">"e"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h2 id="performance">Performance</h2>
<ul>
<li>Default limit: 10,000 triples</li>
<li>Max limit: 100,000 triples</li>
<li>More specific patterns = faster queries</li>
<li>Consider limit for large result sets</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="s"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand s"><span class="property-name">s</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span><span class="sc-gTgAvG sc-jeGQnC gCMUGw jJMDiT"> (<!-- -->RdfValue<!-- -->) </span></div> <div><div html="&lt;p&gt;Subject filter (optional)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Subject filter (optional)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="p"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand p"><span class="property-name">p</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span><span class="sc-gTgAvG sc-jeGQnC gCMUGw jJMDiT"> (<!-- -->RdfValue<!-- -->) </span></div> <div><div html="&lt;p&gt;Predicate filter (optional)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Predicate filter (optional)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="o"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand o"><span class="property-name">o</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span><span class="sc-gTgAvG sc-jeGQnC gCMUGw jJMDiT"> (<!-- -->RdfValue<!-- -->) </span></div> <div><div html="&lt;p&gt;Object filter (optional)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Object filter (optional)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="limit" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">limit</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 100000 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">10000</span></div> <div><div html="&lt;p&gt;Maximum number of triples to return&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum number of triples to return</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to query&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection to query</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="g" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">g</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Named graph filter (optional).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Omitted/null: all graphs&lt;/li&gt;
&lt;li&gt;Empty string: default graph only&lt;/li&gt;
&lt;li&gt;URI string: specific named graph (e.g., urn:graph:source, urn:graph:retrieval)&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Named graph filter (optional).</p>
<ul>
<li>Omitted/null: all graphs</li>
<li>Empty string: default graph only</li>
<li>URI string: specific named graph (e.g., urn:graph:source, urn:graph:retrieval)</li>
</ul>
</div></div></div></td></tr><tr class=""><td kind="field" title="streaming" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">streaming</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">boolean</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Enable streaming response delivery</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="batch-size" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">batch-size</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 1000 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">20</span></div> <div><div html="&lt;p&gt;Number of triples per streaming batch&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Number of triples per streaming batch</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/triples</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/triples</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_998lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_998lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_998lq_0" aria-labelledby="tab_R_998lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="All triples about an entity" selected="">All triples about an entity</option><option value="Find all instances of a type">Find all instances of a type</option><option value="Find specific relationships">Find specific relationships</option></select><label>All triples about an entity</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"s"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/person/alice">https://example.com/person/alice</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"limit"</span>: <span class="token number">100</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9p8lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9p8lq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9p8lq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p8lq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9p8lq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p8lq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9p8lq_0" aria-labelledby="tab_R_9p8lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"response"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"s"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/person/alice">https://example.com/person/alice</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"p"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://www.w3.org/1999/02/22-rdf-syntax-ns#type">https://www.w3.org/1999/02/22-rdf-syntax-ns#type</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"o"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/type/Person">https://example.com/type/Person</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"s"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/person/alice">https://example.com/person/alice</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"p"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://www.w3.org/2000/01/rdf-schema#label">https://www.w3.org/2000/01/rdf-schema#label</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"o"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;Alice&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">false</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"s"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/person/alice">https://example.com/person/alice</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"p"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/knows">https://example.com/knows</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"o"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/person/bob">https://example.com/person/bob</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p8lq_1" aria-labelledby="tab_R_9p8lq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p8lq_2" aria-labelledby="tab_R_9p8lq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/rowsQueryService" data-section-id="tag/Flow-Services/operation/rowsQueryService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/rowsQueryService" id="operation/rowsQueryService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/rowsQueryService" aria-label="tag/Flow-Services/operation/rowsQueryService"></a>Rows query - GraphQL over structured data<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Query structured data using GraphQL for row-oriented data access.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;rows-query-overview&quot;&gt;Rows Query Overview&lt;/h2&gt;
&lt;p&gt;GraphQL interface to structured data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Schema-driven&lt;/strong&gt;: Predefined types and relationships&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flexible queries&lt;/strong&gt;: Request exactly what you need&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nested data&lt;/strong&gt;: Traverse relationships in single query&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Type-safe&lt;/strong&gt;: Strong typing with introspection&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Abstracts structured rows into familiar object model.&lt;/p&gt;
&lt;h2 id=&quot;graphql-benefits&quot;&gt;GraphQL Benefits&lt;/h2&gt;
&lt;p&gt;Compared to triples query:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Developer-friendly&lt;/strong&gt;: Objects instead of triples&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficient&lt;/strong&gt;: Get related data in one query&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Typed&lt;/strong&gt;: Schema defines available fields&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Discoverable&lt;/strong&gt;: Introspection for tooling&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;query-structure&quot;&gt;Query Structure&lt;/h2&gt;
&lt;p&gt;Standard GraphQL query format:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-graphql&quot;&gt;query &lt;span class=&quot;token function&quot;&gt;OperationName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;$var&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; Type&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;fieldName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;arg&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; $var&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
subField1
subField2
nestedObject &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
nestedField
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;variables&quot;&gt;Variables&lt;/h2&gt;
&lt;p&gt;Pass variables for parameterized queries:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;query&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;query GetPerson($id: ID!) { person(id: $id) { name } }&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;variables&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;https://example.com/person/alice&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;error-handling&quot;&gt;Error Handling&lt;/h2&gt;
&lt;p&gt;GraphQL distinguishes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Field errors&lt;/strong&gt;: Invalid query, missing fields (in &lt;code&gt;errors&lt;/code&gt; array)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System errors&lt;/strong&gt;: Connection issues, timeouts (in &lt;code&gt;error&lt;/code&gt; object)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Partial data may be returned with field errors.&lt;/p&gt;
&lt;h2 id=&quot;schema-definition&quot;&gt;Schema Definition&lt;/h2&gt;
&lt;p&gt;Schema defines available types via config service.
Use introspection query to discover schema.&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Query structured data using GraphQL for row-oriented data access.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="rows-query-overview">Rows Query Overview</h2>
<p>GraphQL interface to structured data:</p>
<ul>
<li><strong>Schema-driven</strong>: Predefined types and relationships</li>
<li><strong>Flexible queries</strong>: Request exactly what you need</li>
<li><strong>Nested data</strong>: Traverse relationships in single query</li>
<li><strong>Type-safe</strong>: Strong typing with introspection</li>
</ul>
<p>Abstracts structured rows into familiar object model.</p>
<h2 id="graphql-benefits">GraphQL Benefits</h2>
<p>Compared to triples query:</p>
<ul>
<li><strong>Developer-friendly</strong>: Objects instead of triples</li>
<li><strong>Efficient</strong>: Get related data in one query</li>
<li><strong>Typed</strong>: Schema defines available fields</li>
<li><strong>Discoverable</strong>: Introspection for tooling</li>
</ul>
<h2 id="query-structure">Query Structure</h2>
<p>Standard GraphQL query format:</p>
<pre><code class="language-graphql">query <span class="token function">OperationName</span><span class="token punctuation">(</span>$var<span class="token punctuation">:</span> Type<span class="token operator">!</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token function">fieldName</span><span class="token punctuation">(</span>arg<span class="token punctuation">:</span> $var<span class="token punctuation">)</span> <span class="token punctuation">{</span>
subField1
subField2
nestedObject <span class="token punctuation">{</span>
nestedField
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h2 id="variables">Variables</h2>
<p>Pass variables for parameterized queries:</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"query"</span><span class="token operator">:</span> <span class="token string">"query GetPerson($id: ID!) { person(id: $id) { name } }"</span><span class="token punctuation">,</span>
<span class="token string-property property">"variables"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"https://example.com/person/alice"</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h2 id="error-handling">Error Handling</h2>
<p>GraphQL distinguishes:</p>
<ul>
<li><strong>Field errors</strong>: Invalid query, missing fields (in <code>errors</code> array)</li>
<li><strong>System errors</strong>: Connection issues, timeouts (in <code>error</code> object)</li>
</ul>
<p>Partial data may be returned with field errors.</p>
<h2 id="schema-definition">Schema Definition</h2>
<p>Schema defines available types via config service.
Use introspection query to discover schema.</p>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="query" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">query</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;GraphQL query string&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>GraphQL query string</p>
</div></div></div></td></tr><tr class=""><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="variables"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand variables"><span class="property-name">variables</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span></div> <div><div html="&lt;p&gt;GraphQL query variables&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>GraphQL query variables</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="operation-name" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">operation-name</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Operation name (for multi-operation documents)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Operation name (for multi-operation documents)</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to query&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection to query</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/rows</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/rows</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_999lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_999lq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_999lq_0" aria-labelledby="tab_R_999lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Simple query" selected="">Simple query</option><option value="Query with variables">Query with variables</option><option value="Nested relationship query">Nested relationship query</option></select><label>Simple query</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"query"</span>: <span class="token string">&quot;{\n person(id: \&quot;https://example.com/person/alice\&quot;) {\n name\n email\n }\n}\n&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9p9lq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9p9lq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9p9lq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p9lq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9p9lq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9p9lq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9p9lq_0" aria-labelledby="tab_R_9p9lq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Successful query" selected="">Successful query</option><option value="Query with field errors">Query with field errors</option><option value="System error">System error</option></select><label>Successful query</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"data"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"person"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;Alice&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"email"</span>: <span class="token string">&quot;alice@example.com&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"knows"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;Bob&quot;</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;Carol&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"extensions"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"execution_time_ms"</span>: <span class="token string">&quot;42&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p9lq_1" aria-labelledby="tab_R_9p9lq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9p9lq_2" aria-labelledby="tab_R_9p9lq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/nlpQueryService" data-section-id="tag/Flow-Services/operation/nlpQueryService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/nlpQueryService" id="operation/nlpQueryService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/nlpQueryService" aria-label="tag/Flow-Services/operation/nlpQueryService"></a>NLP Query - natural language to structured query<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Convert natural language questions to structured GraphQL queries.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;nlp-query-overview&quot;&gt;NLP Query Overview&lt;/h2&gt;
&lt;p&gt;Transforms user questions into executable GraphQL:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Natural input&lt;/strong&gt;: Ask questions in plain English&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Structured output&lt;/strong&gt;: Get GraphQL query + variables&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Schema-aware&lt;/strong&gt;: Uses knowledge graph schema&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Confidence scoring&lt;/strong&gt;: Know how well question was understood&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enables non-technical users to query knowledge graph.&lt;/p&gt;
&lt;h2 id=&quot;process&quot;&gt;Process&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Parse natural language question&lt;/li&gt;
&lt;li&gt;Identify entities and relationships&lt;/li&gt;
&lt;li&gt;Map to GraphQL schema types&lt;/li&gt;
&lt;li&gt;Generate query with variables&lt;/li&gt;
&lt;li&gt;Return query + confidence score&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;using-results&quot;&gt;Using Results&lt;/h2&gt;
&lt;p&gt;Generated query can be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Executed via objects query service&lt;/li&gt;
&lt;li&gt;Inspected and modified if needed&lt;/li&gt;
&lt;li&gt;Cached for similar questions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example workflow:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token number&quot;&gt;1.&lt;/span&gt; User asks&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Who does Alice know?&quot;&lt;/span&gt;
&lt;span class=&quot;token number&quot;&gt;2.&lt;/span&gt; NLP Query generates GraphQL
&lt;span class=&quot;token number&quot;&gt;3.&lt;/span&gt; Execute via &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;v1&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;flow&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;flow&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;service&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;rows
&lt;span class=&quot;token number&quot;&gt;4.&lt;/span&gt; Return results to user
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;schema-detection&quot;&gt;Schema Detection&lt;/h2&gt;
&lt;p&gt;Response includes &lt;code&gt;detected-schemas&lt;/code&gt; array showing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Which types were identified&lt;/li&gt;
&lt;li&gt;What entities were matched&lt;/li&gt;
&lt;li&gt;Schema coverage of question&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Helps understand query scope.&lt;/p&gt;
&lt;h2 id=&quot;confidence-scores&quot;&gt;Confidence Scores&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;0.9-1.0&lt;/strong&gt;: High confidence, likely correct&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0.7-0.9&lt;/strong&gt;: Good confidence, probably correct&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0.5-0.7&lt;/strong&gt;: Medium confidence, may need review&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;lt; 0.5&lt;/strong&gt;: Low confidence, likely incorrect&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Low scores suggest:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ambiguous question&lt;/li&gt;
&lt;li&gt;Missing schema coverage&lt;/li&gt;
&lt;li&gt;Complex query structure&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Convert natural language questions to structured GraphQL queries.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="nlp-query-overview">NLP Query Overview</h2>
<p>Transforms user questions into executable GraphQL:</p>
<ul>
<li><strong>Natural input</strong>: Ask questions in plain English</li>
<li><strong>Structured output</strong>: Get GraphQL query + variables</li>
<li><strong>Schema-aware</strong>: Uses knowledge graph schema</li>
<li><strong>Confidence scoring</strong>: Know how well question was understood</li>
</ul>
<p>Enables non-technical users to query knowledge graph.</p>
<h2 id="process">Process</h2>
<ol>
<li>Parse natural language question</li>
<li>Identify entities and relationships</li>
<li>Map to GraphQL schema types</li>
<li>Generate query with variables</li>
<li>Return query + confidence score</li>
</ol>
<h2 id="using-results">Using Results</h2>
<p>Generated query can be:</p>
<ul>
<li>Executed via objects query service</li>
<li>Inspected and modified if needed</li>
<li>Cached for similar questions</li>
</ul>
<p>Example workflow:</p>
<pre><code><span class="token number">1.</span> User asks<span class="token punctuation">:</span> <span class="token string">"Who does Alice know?"</span>
<span class="token number">2.</span> NLP Query generates GraphQL
<span class="token number">3.</span> Execute via <span class="token operator">/</span>api<span class="token operator">/</span>v1<span class="token operator">/</span>flow<span class="token operator">/</span><span class="token punctuation">{</span>flow<span class="token punctuation">}</span><span class="token operator">/</span>service<span class="token operator">/</span>rows
<span class="token number">4.</span> Return results to user
</code></pre>
<h2 id="schema-detection">Schema Detection</h2>
<p>Response includes <code>detected-schemas</code> array showing:</p>
<ul>
<li>Which types were identified</li>
<li>What entities were matched</li>
<li>Schema coverage of question</li>
</ul>
<p>Helps understand query scope.</p>
<h2 id="confidence-scores">Confidence Scores</h2>
<ul>
<li><strong>0.9-1.0</strong>: High confidence, likely correct</li>
<li><strong>0.7-0.9</strong>: Good confidence, probably correct</li>
<li><strong>0.5-0.7</strong>: Medium confidence, may need review</li>
<li><strong>&lt; 0.5</strong>: Low confidence, likely incorrect</li>
</ul>
<p>Low scores suggest:</p>
<ul>
<li>Ambiguous question</li>
<li>Missing schema coverage</li>
<li>Complex query structure</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="question" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">question</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Natural language question&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Natural language question</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="max-results" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">max-results</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 10000 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">100</span></div> <div><div html="&lt;p&gt;Maximum results to return when query is executed&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum results to return when query is executed</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/nlp-query</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/nlp-query</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99alq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99alq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99alq_0" aria-labelledby="tab_R_99alq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Simple relationship question" selected="">Simple relationship question</option><option value="Multi-hop relationship">Multi-hop relationship</option><option value="Question with filters">Question with filters</option></select><label>Simple relationship question</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"question"</span>: <span class="token string">&quot;Who does Alice know?&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"max-results"</span>: <span class="token number">50</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9palq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9palq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9palq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9palq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9palq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9palq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9palq_0" aria-labelledby="tab_R_9palq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Successful query generation" selected="">Successful query generation</option><option value="Complex multi-hop query">Complex multi-hop query</option><option value="Low confidence result">Low confidence result</option></select><label>Successful query generation</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"graphql-query"</span>: <span class="token string">&quot;query GetConnections($person: ID!) {\n person(id: $person) {\n knows { name email }\n }\n}\n&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"variables"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"person"</span>: <span class="token string">&quot;</span><a href="https://example.com/person/alice">https://example.com/person/alice</a><span class="token string">&quot;</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"detected-schemas"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;Person&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"confidence"</span>: <span class="token number">0.92</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9palq_1" aria-labelledby="tab_R_9palq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9palq_2" aria-labelledby="tab_R_9palq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/structuredQueryService" data-section-id="tag/Flow-Services/operation/structuredQueryService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/structuredQueryService" id="operation/structuredQueryService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/structuredQueryService" aria-label="tag/Flow-Services/operation/structuredQueryService"></a>Structured Query - question to results (all-in-one)<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Ask natural language questions and get results directly.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;structured-query-overview&quot;&gt;Structured Query Overview&lt;/h2&gt;
&lt;p&gt;Combines two operations in one call:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;NLP Query&lt;/strong&gt;: Generate GraphQL from question&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rows Query&lt;/strong&gt;: Execute generated query&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Return Results&lt;/strong&gt;: Direct answer data&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Simplest way to query knowledge graph with natural language.&lt;/p&gt;
&lt;h2 id=&quot;comparison-with-other-services&quot;&gt;Comparison with Other Services&lt;/h2&gt;
&lt;h3 id=&quot;structured-query-this-service&quot;&gt;Structured Query (this service)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input&lt;/strong&gt;: Natural language question&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;: Query results (data)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use when&lt;/strong&gt;: Want simple, direct answers&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;nlp-query--rows-query-separate-calls&quot;&gt;NLP Query + Rows Query (separate calls)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Step 1&lt;/strong&gt;: Convert question → GraphQL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step 2&lt;/strong&gt;: Execute GraphQL → results&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use when&lt;/strong&gt;: Need to inspect/modify query before execution&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;triples-query-low-level&quot;&gt;Triples Query (low-level)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input&lt;/strong&gt;: RDF pattern&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;: Matching triples&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use when&lt;/strong&gt;: Need precise control over graph queries&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;response-format&quot;&gt;Response Format&lt;/h2&gt;
&lt;p&gt;Returns standard GraphQL response:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;data&lt;/strong&gt;: Query results (null if error)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;errors&lt;/strong&gt;: Field-level errors (array of strings)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;error&lt;/strong&gt;: System-level error (generation or execution failure)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;error-handling&quot;&gt;Error Handling&lt;/h2&gt;
&lt;p&gt;Three types of errors:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Query generation failed&lt;/strong&gt;: Couldn&amp;#39;t understand question&lt;ul&gt;
&lt;li&gt;Error in &lt;code&gt;error&lt;/code&gt; object&lt;/li&gt;
&lt;li&gt;data = null&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Query execution failed&lt;/strong&gt;: Generated query had errors&lt;ul&gt;
&lt;li&gt;Errors in &lt;code&gt;errors&lt;/code&gt; array&lt;/li&gt;
&lt;li&gt;data may be partial&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System error&lt;/strong&gt;: Infrastructure issue&lt;ul&gt;
&lt;li&gt;Error in &lt;code&gt;error&lt;/code&gt; object&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;performance&quot;&gt;Performance&lt;/h2&gt;
&lt;p&gt;Convenience vs control trade-off:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Faster development&lt;/strong&gt;: One call instead of two&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Less control&lt;/strong&gt;: Can&amp;#39;t inspect/modify generated query&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simpler code&lt;/strong&gt;: No need to handle intermediate steps&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Ask natural language questions and get results directly.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="structured-query-overview">Structured Query Overview</h2>
<p>Combines two operations in one call:</p>
<ol>
<li><strong>NLP Query</strong>: Generate GraphQL from question</li>
<li><strong>Rows Query</strong>: Execute generated query</li>
<li><strong>Return Results</strong>: Direct answer data</li>
</ol>
<p>Simplest way to query knowledge graph with natural language.</p>
<h2 id="comparison-with-other-services">Comparison with Other Services</h2>
<h3 id="structured-query-this-service">Structured Query (this service)</h3>
<ul>
<li><strong>Input</strong>: Natural language question</li>
<li><strong>Output</strong>: Query results (data)</li>
<li><strong>Use when</strong>: Want simple, direct answers</li>
</ul>
<h3 id="nlp-query--rows-query-separate-calls">NLP Query + Rows Query (separate calls)</h3>
<ul>
<li><strong>Step 1</strong>: Convert question → GraphQL</li>
<li><strong>Step 2</strong>: Execute GraphQL → results</li>
<li><strong>Use when</strong>: Need to inspect/modify query before execution</li>
</ul>
<h3 id="triples-query-low-level">Triples Query (low-level)</h3>
<ul>
<li><strong>Input</strong>: RDF pattern</li>
<li><strong>Output</strong>: Matching triples</li>
<li><strong>Use when</strong>: Need precise control over graph queries</li>
</ul>
<h2 id="response-format">Response Format</h2>
<p>Returns standard GraphQL response:</p>
<ul>
<li><strong>data</strong>: Query results (null if error)</li>
<li><strong>errors</strong>: Field-level errors (array of strings)</li>
<li><strong>error</strong>: System-level error (generation or execution failure)</li>
</ul>
<h2 id="error-handling">Error Handling</h2>
<p>Three types of errors:</p>
<ol>
<li><strong>Query generation failed</strong>: Couldn&#39;t understand question<ul>
<li>Error in <code>error</code> object</li>
<li>data = null</li>
</ul>
</li>
<li><strong>Query execution failed</strong>: Generated query had errors<ul>
<li>Errors in <code>errors</code> array</li>
<li>data may be partial</li>
</ul>
</li>
<li><strong>System error</strong>: Infrastructure issue<ul>
<li>Error in <code>error</code> object</li>
</ul>
</li>
</ol>
<h2 id="performance">Performance</h2>
<p>Convenience vs control trade-off:</p>
<ul>
<li><strong>Faster development</strong>: One call instead of two</li>
<li><strong>Less control</strong>: Can&#39;t inspect/modify generated query</li>
<li><strong>Simpler code</strong>: No need to handle intermediate steps</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="question" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">question</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Natural language question&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Natural language question</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to query&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection to query</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/structured-query</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/structured-query</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99blq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99blq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99blq_0" aria-labelledby="tab_R_99blq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Simple relationship question" selected="">Simple relationship question</option><option value="Complex multi-hop question">Complex multi-hop question</option><option value="Question with implicit filters">Question with implicit filters</option></select><label>Simple relationship question</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"question"</span>: <span class="token string">&quot;Who does Alice know?&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9pblq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pblq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9pblq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pblq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9pblq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pblq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9pblq_0" aria-labelledby="tab_R_9pblq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Successful query with results" selected="">Successful query with results</option><option value="Partial results with errors">Partial results with errors</option><option value="Query generation failed">Query generation failed</option></select><label>Successful query with results</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"data"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"person"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;Alice&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"knows"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;Bob&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"email"</span>: <span class="token string">&quot;bob@example.com&quot;</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"name"</span>: <span class="token string">&quot;Carol&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"email"</span>: <span class="token string">&quot;carol@example.com&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">}</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"errors"</span>: <span class="token punctuation">[ ]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pblq_1" aria-labelledby="tab_R_9pblq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pblq_2" aria-labelledby="tab_R_9pblq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/structuredDiagService" data-section-id="tag/Flow-Services/operation/structuredDiagService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/structuredDiagService" id="operation/structuredDiagService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/structuredDiagService" aria-label="tag/Flow-Services/operation/structuredDiagService"></a>Structured Diag - analyze structured data formats<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Analyze and understand structured data (CSV, JSON, XML).&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;structured-diag-overview&quot;&gt;Structured Diag Overview&lt;/h2&gt;
&lt;p&gt;Helps process unknown structured data:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Detect format&lt;/strong&gt;: Identify CSV, JSON, or XML&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generate schema&lt;/strong&gt;: Create descriptor from sample&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Match schemas&lt;/strong&gt;: Find existing schemas that fit data&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full diagnosis&lt;/strong&gt;: Complete analysis in one call&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Essential for data ingestion pipelines.&lt;/p&gt;
&lt;h2 id=&quot;operations&quot;&gt;Operations&lt;/h2&gt;
&lt;h3 id=&quot;detect-type&quot;&gt;detect-type&lt;/h3&gt;
&lt;p&gt;Identify data format from sample:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Input: Data sample&lt;/li&gt;
&lt;li&gt;Output: Format (csv/json/xml) + confidence&lt;/li&gt;
&lt;li&gt;Use when: Format is unknown&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;generate-descriptor&quot;&gt;generate-descriptor&lt;/h3&gt;
&lt;p&gt;Create schema descriptor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Input: Sample + known type&lt;/li&gt;
&lt;li&gt;Output: Field definitions, types, structure&lt;/li&gt;
&lt;li&gt;Use when: Need to understand data structure&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;diagnose-recommended&quot;&gt;diagnose (recommended)&lt;/h3&gt;
&lt;p&gt;Combined analysis:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Input: Data sample&lt;/li&gt;
&lt;li&gt;Output: Format + descriptor + metadata&lt;/li&gt;
&lt;li&gt;Use when: Starting from scratch&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;schema-selection&quot;&gt;schema-selection&lt;/h3&gt;
&lt;p&gt;Find matching schemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Input: Data sample&lt;/li&gt;
&lt;li&gt;Output: List of schema IDs that match&lt;/li&gt;
&lt;li&gt;Use when: Have existing schemas, need to match data&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;data-types&quot;&gt;Data Types&lt;/h2&gt;
&lt;p&gt;Supported formats:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CSV&lt;/strong&gt;: Comma-separated values (or custom delimiter)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JSON&lt;/strong&gt;: JSON objects or arrays&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XML&lt;/strong&gt;: XML documents&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;options&quot;&gt;Options&lt;/h2&gt;
&lt;p&gt;Format-specific options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CSV&lt;/strong&gt;: delimiter, has_header, quote_char&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JSON&lt;/strong&gt;: array_path (for nested arrays)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XML&lt;/strong&gt;: root_element, record_path&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;workflow-example&quot;&gt;Workflow Example&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Receive unknown data file&lt;/li&gt;
&lt;li&gt;Call diagnose operation with sample&lt;/li&gt;
&lt;li&gt;Get format + schema descriptor&lt;/li&gt;
&lt;li&gt;Use descriptor to process full dataset&lt;/li&gt;
&lt;li&gt;Load data via document-load or text-load&lt;/li&gt;
&lt;/ol&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Analyze and understand structured data (CSV, JSON, XML).</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="structured-diag-overview">Structured Diag Overview</h2>
<p>Helps process unknown structured data:</p>
<ul>
<li><strong>Detect format</strong>: Identify CSV, JSON, or XML</li>
<li><strong>Generate schema</strong>: Create descriptor from sample</li>
<li><strong>Match schemas</strong>: Find existing schemas that fit data</li>
<li><strong>Full diagnosis</strong>: Complete analysis in one call</li>
</ul>
<p>Essential for data ingestion pipelines.</p>
<h2 id="operations">Operations</h2>
<h3 id="detect-type">detect-type</h3>
<p>Identify data format from sample:</p>
<ul>
<li>Input: Data sample</li>
<li>Output: Format (csv/json/xml) + confidence</li>
<li>Use when: Format is unknown</li>
</ul>
<h3 id="generate-descriptor">generate-descriptor</h3>
<p>Create schema descriptor:</p>
<ul>
<li>Input: Sample + known type</li>
<li>Output: Field definitions, types, structure</li>
<li>Use when: Need to understand data structure</li>
</ul>
<h3 id="diagnose-recommended">diagnose (recommended)</h3>
<p>Combined analysis:</p>
<ul>
<li>Input: Data sample</li>
<li>Output: Format + descriptor + metadata</li>
<li>Use when: Starting from scratch</li>
</ul>
<h3 id="schema-selection">schema-selection</h3>
<p>Find matching schemas:</p>
<ul>
<li>Input: Data sample</li>
<li>Output: List of schema IDs that match</li>
<li>Use when: Have existing schemas, need to match data</li>
</ul>
<h2 id="data-types">Data Types</h2>
<p>Supported formats:</p>
<ul>
<li><strong>CSV</strong>: Comma-separated values (or custom delimiter)</li>
<li><strong>JSON</strong>: JSON objects or arrays</li>
<li><strong>XML</strong>: XML documents</li>
</ul>
<h2 id="options">Options</h2>
<p>Format-specific options:</p>
<ul>
<li><strong>CSV</strong>: delimiter, has_header, quote_char</li>
<li><strong>JSON</strong>: array_path (for nested arrays)</li>
<li><strong>XML</strong>: root_element, record_path</li>
</ul>
<h2 id="workflow-example">Workflow Example</h2>
<ol>
<li>Receive unknown data file</li>
<li>Call diagnose operation with sample</li>
<li>Get format + schema descriptor</li>
<li>Use descriptor to process full dataset</li>
<li>Load data via document-load or text-load</li>
</ol>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="operation" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">operation</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Enum<!-- -->:</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;detect-type&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;generate-descriptor&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;diagnose&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;schema-selection&quot;</span> </div> <div><div html="&lt;p&gt;Diagnosis operation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;detect-type&lt;/code&gt;: Identify data format (CSV, JSON, XML)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;generate-descriptor&lt;/code&gt;: Create schema descriptor for data&lt;/li&gt;
&lt;li&gt;&lt;code&gt;diagnose&lt;/code&gt;: Full analysis (detect + generate descriptor)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;schema-selection&lt;/code&gt;: Find matching schemas for data&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Diagnosis operation:</p>
<ul>
<li><code>detect-type</code>: Identify data format (CSV, JSON, XML)</li>
<li><code>generate-descriptor</code>: Create schema descriptor for data</li>
<li><code>diagnose</code>: Full analysis (detect + generate descriptor)</li>
<li><code>schema-selection</code>: Find matching schemas for data</li>
</ul>
</div></div></div></td></tr><tr class=""><td kind="field" title="sample" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">sample</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Data sample to analyze (text content)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Data sample to analyze (text content)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="type" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">type</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Enum<!-- -->:</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;csv&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;json&quot;</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;xml&quot;</span> </div> <div><div html="&lt;p&gt;Data type (required for generate-descriptor)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Data type (required for generate-descriptor)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="schema-name" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">schema-name</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Target schema name for descriptor generation (optional)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Target schema name for descriptor generation (optional)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="options"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand options"><span class="property-name">options</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">object</span></div> <div><div html="&lt;p&gt;Format-specific options (e.g., CSV delimiter)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Format-specific options (e.g., CSV delimiter)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/structured-diag</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/structured-diag</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99clq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99clq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99clq_0" aria-labelledby="tab_R_99clq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Detect data type" selected="">Detect data type</option><option value="Generate schema descriptor">Generate schema descriptor</option><option value="Full diagnosis">Full diagnosis</option><option value="Find matching schemas">Find matching schemas</option></select><label>Detect data type</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"operation"</span>: <span class="token string">&quot;detect-type&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"sample"</span>: <span class="token string">&quot;name,age,email\nAlice,30,alice@example.com\nBob,25,bob@example.com\n&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9pclq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pclq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9pclq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pclq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9pclq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pclq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9pclq_0" aria-labelledby="tab_R_9pclq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Type detection result" selected="">Type detection result</option><option value="Generated descriptor">Generated descriptor</option><option value="Complete diagnosis">Complete diagnosis</option><option value="Schema selection results">Schema selection results</option></select><label>Type detection result</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"operation"</span>: <span class="token string">&quot;detect-type&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"detected-type"</span>: <span class="token string">&quot;csv&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"confidence"</span>: <span class="token number">0.95</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pclq_1" aria-labelledby="tab_R_9pclq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pclq_2" aria-labelledby="tab_R_9pclq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/graphEmbeddingsQueryService" data-section-id="tag/Flow-Services/operation/graphEmbeddingsQueryService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/graphEmbeddingsQueryService" id="operation/graphEmbeddingsQueryService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/graphEmbeddingsQueryService" aria-label="tag/Flow-Services/operation/graphEmbeddingsQueryService"></a>Graph Embeddings Query - find similar entities<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Query graph embeddings to find similar entities by vector similarity.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;graph-embeddings-query-overview&quot;&gt;Graph Embeddings Query Overview&lt;/h2&gt;
&lt;p&gt;Find entities semantically similar to a query vector:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input&lt;/strong&gt;: Query embedding vector&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search&lt;/strong&gt;: Compare against stored entity embeddings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;: Most similar entities (RDF URIs)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Core component of graph RAG retrieval.&lt;/p&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Entity discovery&lt;/strong&gt;: Find related entities&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Concept expansion&lt;/strong&gt;: Discover similar concepts&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Graph exploration&lt;/strong&gt;: Navigate by semantic similarity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAG retrieval&lt;/strong&gt;: Get entities for context&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;process&quot;&gt;Process&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Obtain query embedding (via embeddings service)&lt;/li&gt;
&lt;li&gt;Query stored entity embeddings&lt;/li&gt;
&lt;li&gt;Calculate cosine similarity&lt;/li&gt;
&lt;li&gt;Return top N most similar entities&lt;/li&gt;
&lt;li&gt;Use entities to retrieve triples/subgraph&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;similarity-scoring&quot;&gt;Similarity Scoring&lt;/h2&gt;
&lt;p&gt;Uses cosine similarity between vectors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Results ordered by similarity (most similar first)&lt;/li&gt;
&lt;li&gt;No explicit similarity scores returned&lt;/li&gt;
&lt;li&gt;Limit controls result count&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;entity-format&quot;&gt;Entity Format&lt;/h2&gt;
&lt;p&gt;Returns RDF values (entities):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;URI entities: &lt;code&gt;{v: &amp;quot;https://...&amp;quot;, e: true}&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;These are references to knowledge graph entities&lt;/li&gt;
&lt;li&gt;Use with triples query to get entity details&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Query graph embeddings to find similar entities by vector similarity.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="graph-embeddings-query-overview">Graph Embeddings Query Overview</h2>
<p>Find entities semantically similar to a query vector:</p>
<ul>
<li><strong>Input</strong>: Query embedding vector</li>
<li><strong>Search</strong>: Compare against stored entity embeddings</li>
<li><strong>Output</strong>: Most similar entities (RDF URIs)</li>
</ul>
<p>Core component of graph RAG retrieval.</p>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li><strong>Entity discovery</strong>: Find related entities</li>
<li><strong>Concept expansion</strong>: Discover similar concepts</li>
<li><strong>Graph exploration</strong>: Navigate by semantic similarity</li>
<li><strong>RAG retrieval</strong>: Get entities for context</li>
</ul>
<h2 id="process">Process</h2>
<ol>
<li>Obtain query embedding (via embeddings service)</li>
<li>Query stored entity embeddings</li>
<li>Calculate cosine similarity</li>
<li>Return top N most similar entities</li>
<li>Use entities to retrieve triples/subgraph</li>
</ol>
<h2 id="similarity-scoring">Similarity Scoring</h2>
<p>Uses cosine similarity between vectors:</p>
<ul>
<li>Results ordered by similarity (most similar first)</li>
<li>No explicit similarity scores returned</li>
<li>Limit controls result count</li>
</ul>
<h2 id="entity-format">Entity Format</h2>
<p>Returns RDF values (entities):</p>
<ul>
<li>URI entities: <code>{v: &quot;https://...&quot;, e: true}</code></li>
<li>These are references to knowledge graph entities</li>
<li>Use with triples query to get entity details</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="vectors" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">vectors</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">numbers</span></div> <div><div html="&lt;p&gt;Query embedding vector&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Query embedding vector</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="limit" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">limit</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 1000 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">10</span></div> <div><div html="&lt;p&gt;Maximum number of entities to return&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum number of entities to return</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection to search</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/graph-embeddings</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/graph-embeddings</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99dlq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99dlq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99dlq_0" aria-labelledby="tab_R_99dlq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Find similar entities" selected="">Find similar entities</option><option value="Larger result set">Larger result set</option></select><label>Find similar entities</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"vectors"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0.023</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.142</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.089</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.234</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.067</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.156</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.201</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.178</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"limit"</span>: <span class="token number">10</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9pdlq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pdlq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9pdlq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pdlq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9pdlq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pdlq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9pdlq_0" aria-labelledby="tab_R_9pdlq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"entities"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/person/alice">https://example.com/person/alice</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/person/bob">https://example.com/person/bob</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/concept/quantum-computing">https://example.com/concept/quantum-computing</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"v"</span>: <span class="token string">&quot;</span><a href="https://example.com/concept/machine-learning">https://example.com/concept/machine-learning</a><span class="token string">&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"e"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pdlq_1" aria-labelledby="tab_R_9pdlq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pdlq_2" aria-labelledby="tab_R_9pdlq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/documentEmbeddingsQueryService" data-section-id="tag/Flow-Services/operation/documentEmbeddingsQueryService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/documentEmbeddingsQueryService" id="operation/documentEmbeddingsQueryService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/documentEmbeddingsQueryService" aria-label="tag/Flow-Services/operation/documentEmbeddingsQueryService"></a>Document Embeddings Query - find similar text chunks<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Query document embeddings to find similar text chunks by vector similarity.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;document-embeddings-query-overview&quot;&gt;Document Embeddings Query Overview&lt;/h2&gt;
&lt;p&gt;Find document chunks semantically similar to a query vector:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input&lt;/strong&gt;: Query embedding vector&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search&lt;/strong&gt;: Compare against stored chunk embeddings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;: Most similar text chunks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Core component of document RAG retrieval.&lt;/p&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Document retrieval&lt;/strong&gt;: Find relevant passages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Semantic search&lt;/strong&gt;: Search by meaning not keywords&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Context gathering&lt;/strong&gt;: Get text for RAG&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Similar content&lt;/strong&gt;: Discover related documents&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;process&quot;&gt;Process&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Obtain query embedding (via embeddings service)&lt;/li&gt;
&lt;li&gt;Query stored document chunk embeddings&lt;/li&gt;
&lt;li&gt;Calculate cosine similarity&lt;/li&gt;
&lt;li&gt;Return top N most similar chunks&lt;/li&gt;
&lt;li&gt;Use chunks as context for generation&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;chunking&quot;&gt;Chunking&lt;/h2&gt;
&lt;p&gt;Documents are split into chunks during indexing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Typical size: 200-1000 tokens&lt;/li&gt;
&lt;li&gt;Overlap between chunks for continuity&lt;/li&gt;
&lt;li&gt;Each chunk has own embedding&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Queries return individual chunks, not full documents.&lt;/p&gt;
&lt;h2 id=&quot;similarity-scoring&quot;&gt;Similarity Scoring&lt;/h2&gt;
&lt;p&gt;Uses cosine similarity:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Results ordered by similarity&lt;/li&gt;
&lt;li&gt;No explicit scores in response&lt;/li&gt;
&lt;li&gt;Limit controls result count&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;output-format&quot;&gt;Output Format&lt;/h2&gt;
&lt;p&gt;Returns text chunks as strings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Raw chunk text&lt;/li&gt;
&lt;li&gt;No metadata (source, position, etc.)&lt;/li&gt;
&lt;li&gt;Use for LLM context directly&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Query document embeddings to find similar text chunks by vector similarity.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="document-embeddings-query-overview">Document Embeddings Query Overview</h2>
<p>Find document chunks semantically similar to a query vector:</p>
<ul>
<li><strong>Input</strong>: Query embedding vector</li>
<li><strong>Search</strong>: Compare against stored chunk embeddings</li>
<li><strong>Output</strong>: Most similar text chunks</li>
</ul>
<p>Core component of document RAG retrieval.</p>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li><strong>Document retrieval</strong>: Find relevant passages</li>
<li><strong>Semantic search</strong>: Search by meaning not keywords</li>
<li><strong>Context gathering</strong>: Get text for RAG</li>
<li><strong>Similar content</strong>: Discover related documents</li>
</ul>
<h2 id="process">Process</h2>
<ol>
<li>Obtain query embedding (via embeddings service)</li>
<li>Query stored document chunk embeddings</li>
<li>Calculate cosine similarity</li>
<li>Return top N most similar chunks</li>
<li>Use chunks as context for generation</li>
</ol>
<h2 id="chunking">Chunking</h2>
<p>Documents are split into chunks during indexing:</p>
<ul>
<li>Typical size: 200-1000 tokens</li>
<li>Overlap between chunks for continuity</li>
<li>Each chunk has own embedding</li>
</ul>
<p>Queries return individual chunks, not full documents.</p>
<h2 id="similarity-scoring">Similarity Scoring</h2>
<p>Uses cosine similarity:</p>
<ul>
<li>Results ordered by similarity</li>
<li>No explicit scores in response</li>
<li>Limit controls result count</li>
</ul>
<h2 id="output-format">Output Format</h2>
<p>Returns text chunks as strings:</p>
<ul>
<li>Raw chunk text</li>
<li>No metadata (source, position, etc.)</li>
<li>Use for LLM context directly</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="vectors" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">vectors</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">numbers</span></div> <div><div html="&lt;p&gt;Query embedding vector&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Query embedding vector</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="limit" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">limit</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 1000 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">10</span></div> <div><div html="&lt;p&gt;Maximum number of document chunks to return&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum number of document chunks to return</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection to search</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/document-embeddings</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/document-embeddings</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99elq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99elq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99elq_0" aria-labelledby="tab_R_99elq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Find similar chunks" selected="">Find similar chunks</option><option value="Larger result set">Larger result set</option></select><label>Find similar chunks</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"vectors"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0.023</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.142</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.089</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.234</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.067</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.156</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.201</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.178</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"limit"</span>: <span class="token number">10</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9pelq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pelq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9pelq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pelq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9pelq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pelq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9pelq_0" aria-labelledby="tab_R_9pelq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"chunks"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;Quantum computing uses quantum mechanics principles like superposition and entanglement for computation. Unlike classical bits, quantum bits (qubits) can exist in multiple states simultaneously.&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;Neural networks are computing systems inspired by biological neural networks. They consist of interconnected nodes organized in layers that process information through weighted connections.&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;Machine learning algorithms learn patterns from data without being explicitly programmed. They improve their performance through experience and exposure to training data.&quot;</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pelq_1" aria-labelledby="tab_R_9pelq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pelq_2" aria-labelledby="tab_R_9pelq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/rowEmbeddingsQueryService" data-section-id="tag/Flow-Services/operation/rowEmbeddingsQueryService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/rowEmbeddingsQueryService" id="operation/rowEmbeddingsQueryService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/rowEmbeddingsQueryService" aria-label="tag/Flow-Services/operation/rowEmbeddingsQueryService"></a>Row Embeddings Query - semantic search on structured data<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Query row embeddings to find similar rows by vector similarity on indexed fields.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;p&gt;Enables fuzzy/semantic matching on structured data.&lt;/p&gt;
&lt;h2 id=&quot;row-embeddings-query-overview&quot;&gt;Row Embeddings Query Overview&lt;/h2&gt;
&lt;p&gt;Find rows whose indexed field values are semantically similar to a query:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input&lt;/strong&gt;: Query embedding vector, schema name, optional index filter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Search&lt;/strong&gt;: Compare against stored row index embeddings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;: Matching rows with index values and similarity scores&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Core component of semantic search on structured data.&lt;/p&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fuzzy name matching&lt;/strong&gt;: Find customers by approximate name&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Semantic field search&lt;/strong&gt;: Find products by description similarity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data deduplication&lt;/strong&gt;: Identify potential duplicate records&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Entity resolution&lt;/strong&gt;: Match records across datasets&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;process&quot;&gt;Process&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Obtain query embedding (via embeddings service)&lt;/li&gt;
&lt;li&gt;Query stored row index embeddings for the specified schema&lt;/li&gt;
&lt;li&gt;Calculate cosine similarity&lt;/li&gt;
&lt;li&gt;Return top N most similar index entries&lt;/li&gt;
&lt;li&gt;Use index values to retrieve full rows via GraphQL&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;response-format&quot;&gt;Response Format&lt;/h2&gt;
&lt;p&gt;Each match includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;index_name&lt;/code&gt;: The indexed field(s) that matched&lt;/li&gt;
&lt;li&gt;&lt;code&gt;index_value&lt;/code&gt;: The actual values for those fields&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt;: The text that was embedded&lt;/li&gt;
&lt;li&gt;&lt;code&gt;score&lt;/code&gt;: Similarity score (higher = more similar)&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Query row embeddings to find similar rows by vector similarity on indexed fields.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<p>Enables fuzzy/semantic matching on structured data.</p>
<h2 id="row-embeddings-query-overview">Row Embeddings Query Overview</h2>
<p>Find rows whose indexed field values are semantically similar to a query:</p>
<ul>
<li><strong>Input</strong>: Query embedding vector, schema name, optional index filter</li>
<li><strong>Search</strong>: Compare against stored row index embeddings</li>
<li><strong>Output</strong>: Matching rows with index values and similarity scores</li>
</ul>
<p>Core component of semantic search on structured data.</p>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li><strong>Fuzzy name matching</strong>: Find customers by approximate name</li>
<li><strong>Semantic field search</strong>: Find products by description similarity</li>
<li><strong>Data deduplication</strong>: Identify potential duplicate records</li>
<li><strong>Entity resolution</strong>: Match records across datasets</li>
</ul>
<h2 id="process">Process</h2>
<ol>
<li>Obtain query embedding (via embeddings service)</li>
<li>Query stored row index embeddings for the specified schema</li>
<li>Calculate cosine similarity</li>
<li>Return top N most similar index entries</li>
<li>Use index values to retrieve full rows via GraphQL</li>
</ol>
<h2 id="response-format">Response Format</h2>
<p>Each match includes:</p>
<ul>
<li><code>index_name</code>: The indexed field(s) that matched</li>
<li><code>index_value</code>: The actual values for those fields</li>
<li><code>text</code>: The text that was embedded</li>
<li><code>score</code>: Similarity score (higher = more similar)</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="vectors" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">vectors</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">numbers</span></div> <div><div html="&lt;p&gt;Query embedding vector&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Query embedding vector</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="schema_name" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">schema_name</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Schema name to search within&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Schema name to search within</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="index_name" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">index_name</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Optional index name to filter search to specific index&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Optional index name to filter search to specific index</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="limit" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">limit</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span><span> <span class="sc-gTgAvG sc-clsJvZ gCMUGw gAOGaI"> <!-- -->[ 1 .. 1000 ]<!-- --> </span></span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">10</span></div> <div><div html="&lt;p&gt;Maximum number of matches to return&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Maximum number of matches to return</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection to search</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/row-embeddings</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/row-embeddings</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99flq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99flq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99flq_0" aria-labelledby="tab_R_99flq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Find similar customer names" selected="">Find similar customer names</option><option value="Search specific index">Search specific index</option></select><label>Find similar customer names</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"vectors"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0.023</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.142</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.089</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.234</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.067</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.156</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">0.201</span>,</div></li><li><div class="hoverable collapsed"><span class="token number">-0.178</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"schema_name"</span>: <span class="token string">&quot;customers&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"limit"</span>: <span class="token number">10</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;sales&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9pflq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pflq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9pflq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pflq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9pflq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pflq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9pflq_0" aria-labelledby="tab_R_9pflq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"matches"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"index_name"</span>: <span class="token string">&quot;full_name&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"index_value"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;John&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;Smith&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"text"</span>: <span class="token string">&quot;John Smith&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"score"</span>: <span class="token number">0.95</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"index_name"</span>: <span class="token string">&quot;full_name&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"index_value"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;Jon&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;Smythe&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"text"</span>: <span class="token string">&quot;Jon Smythe&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"score"</span>: <span class="token number">0.82</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"index_name"</span>: <span class="token string">&quot;full_name&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"index_value"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;Jonathan&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;Schmidt&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"text"</span>: <span class="token string">&quot;Jonathan Schmidt&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"score"</span>: <span class="token number">0.76</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pflq_1" aria-labelledby="tab_R_9pflq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pflq_2" aria-labelledby="tab_R_9pflq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/textLoadService" data-section-id="tag/Flow-Services/operation/textLoadService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/textLoadService" id="operation/textLoadService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/textLoadService" aria-label="tag/Flow-Services/operation/textLoadService"></a>Text Load - load text documents<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Load text documents into processing pipeline for indexing and embedding.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;text-load-overview&quot;&gt;Text Load Overview&lt;/h2&gt;
&lt;p&gt;Fire-and-forget document loading:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input&lt;/strong&gt;: Text content (raw UTF-8 or base64 encoded)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Process&lt;/strong&gt;: Chunk, embed, store&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;: None (202 Accepted)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Asynchronous processing - document queued for background processing.&lt;/p&gt;
&lt;h2 id=&quot;processing-pipeline&quot;&gt;Processing Pipeline&lt;/h2&gt;
&lt;p&gt;Text documents go through:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Chunking&lt;/strong&gt;: Split into overlapping chunks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embedding&lt;/strong&gt;: Generate vectors for each chunk&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt;: Store chunks + embeddings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Indexing&lt;/strong&gt;: Make searchable via document-embeddings query&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pipeline runs asynchronously after request returns.&lt;/p&gt;
&lt;h2 id=&quot;text-format&quot;&gt;Text Format&lt;/h2&gt;
&lt;p&gt;Text may be sent as raw UTF-8 text:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Cancer survival: 2.74× higher hazard ratio&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Older clients may still send base64 encoded text:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;text_content &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;This is the document...&quot;&lt;/span&gt;
encoded &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; base64&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;b64encode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;text_content&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;encode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#x27;utf-8&#x27;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Default charset is UTF-8, specify &lt;code&gt;charset&lt;/code&gt; if different.&lt;/p&gt;
&lt;h2 id=&quot;metadata&quot;&gt;Metadata&lt;/h2&gt;
&lt;p&gt;Optional RDF triples describing document:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Title, author, date&lt;/li&gt;
&lt;li&gt;Source URL&lt;/li&gt;
&lt;li&gt;Custom properties&lt;/li&gt;
&lt;li&gt;Used for organization and retrieval&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Document ingestion&lt;/strong&gt;: Add documents to knowledge base&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bulk loading&lt;/strong&gt;: Process multiple documents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Content updates&lt;/strong&gt;: Replace existing documents&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Library integration&lt;/strong&gt;: Load from document library&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;no-response-data&quot;&gt;No Response Data&lt;/h2&gt;
&lt;p&gt;Returns 202 Accepted immediately:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Document queued for processing&lt;/li&gt;
&lt;li&gt;No synchronous result&lt;/li&gt;
&lt;li&gt;No processing status&lt;/li&gt;
&lt;li&gt;Check document-embeddings query later to verify indexed&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Load text documents into processing pipeline for indexing and embedding.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="text-load-overview">Text Load Overview</h2>
<p>Fire-and-forget document loading:</p>
<ul>
<li><strong>Input</strong>: Text content (raw UTF-8 or base64 encoded)</li>
<li><strong>Process</strong>: Chunk, embed, store</li>
<li><strong>Output</strong>: None (202 Accepted)</li>
</ul>
<p>Asynchronous processing - document queued for background processing.</p>
<h2 id="processing-pipeline">Processing Pipeline</h2>
<p>Text documents go through:</p>
<ol>
<li><strong>Chunking</strong>: Split into overlapping chunks</li>
<li><strong>Embedding</strong>: Generate vectors for each chunk</li>
<li><strong>Storage</strong>: Store chunks + embeddings</li>
<li><strong>Indexing</strong>: Make searchable via document-embeddings query</li>
</ol>
<p>Pipeline runs asynchronously after request returns.</p>
<h2 id="text-format">Text Format</h2>
<p>Text may be sent as raw UTF-8 text:</p>
<pre><code><span class="token punctuation">{</span>
<span class="token string">"text"</span><span class="token punctuation">:</span> <span class="token string">"Cancer survival: 2.74× higher hazard ratio"</span>
<span class="token punctuation">}</span>
</code></pre>
<p>Older clients may still send base64 encoded text:</p>
<pre><code>text_content <span class="token operator">=</span> <span class="token string">"This is the document..."</span>
encoded <span class="token operator">=</span> base64<span class="token punctuation">.</span><span class="token function">b64encode</span><span class="token punctuation">(</span>text_content<span class="token punctuation">.</span><span class="token function">encode</span><span class="token punctuation">(</span><span class="token string">'utf-8'</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
</code></pre>
<p>Default charset is UTF-8, specify <code>charset</code> if different.</p>
<h2 id="metadata">Metadata</h2>
<p>Optional RDF triples describing document:</p>
<ul>
<li>Title, author, date</li>
<li>Source URL</li>
<li>Custom properties</li>
<li>Used for organization and retrieval</li>
</ul>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li><strong>Document ingestion</strong>: Add documents to knowledge base</li>
<li><strong>Bulk loading</strong>: Process multiple documents</li>
<li><strong>Content updates</strong>: Replace existing documents</li>
<li><strong>Library integration</strong>: Load from document library</li>
</ul>
<h2 id="no-response-data">No Response Data</h2>
<p>Returns 202 Accepted immediately:</p>
<ul>
<li>Document queued for processing</li>
<li>No synchronous result</li>
<li>No processing status</li>
<li>Check document-embeddings query later to verify indexed</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="text" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">text</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Text content, either raw text or base64 encoded for compatibility with older clients&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Text content, either raw text or base64 encoded for compatibility with older clients</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">id</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Document identifier&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Document identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection for document&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection for document</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="charset" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">charset</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;utf-8&quot;</span></div> <div><div html="&lt;p&gt;Text character encoding&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Text character encoding</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="metadata"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand metadata"><span class="property-name">metadata</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">objects</span><span class="sc-gTgAvG sc-jeGQnC gCMUGw jJMDiT"> (<!-- -->Triple<!-- -->) </span></div> <div><div html="&lt;p&gt;Document metadata as RDF triples&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Document metadata as RDF triples</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">202<!-- --> </strong><div html="&lt;p&gt;Document accepted for processing&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Document accepted for processing</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/text-load</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/text-load</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99glq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99glq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99glq_0" aria-labelledby="tab_R_99glq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Load text document" selected="">Load text document</option><option value="Load with RDF metadata using base64 text">Load with RDF metadata using base64 text</option></select><label>Load text document</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"text"</span>: <span class="token string">&quot;This is the document text...&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"id"</span>: <span class="token string">&quot;doc-123&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9pglq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pglq_0" tabindex="0" data-rttab="true">202</li><li class="tab-error" role="tab" id="tab_R_9pglq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pglq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9pglq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pglq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9pglq_0" aria-labelledby="tab_R_9pglq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><span class="token punctuation">{ }</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pglq_1" aria-labelledby="tab_R_9pglq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pglq_2" aria-labelledby="tab_R_9pglq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/documentLoadService" data-section-id="tag/Flow-Services/operation/documentLoadService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/documentLoadService" id="operation/documentLoadService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/documentLoadService" aria-label="tag/Flow-Services/operation/documentLoadService"></a>Document Load - load binary documents (PDF, etc.)<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Load binary documents (PDF, Word, etc.) into processing pipeline.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;document-load-overview&quot;&gt;Document Load Overview&lt;/h2&gt;
&lt;p&gt;Fire-and-forget binary document loading:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Input&lt;/strong&gt;: Document data (base64 encoded)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Process&lt;/strong&gt;: Extract text, chunk, embed, store&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Output&lt;/strong&gt;: None (202 Accepted)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Asynchronous processing for PDF and other binary formats.&lt;/p&gt;
&lt;h2 id=&quot;processing-pipeline&quot;&gt;Processing Pipeline&lt;/h2&gt;
&lt;p&gt;Documents go through:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Text extraction&lt;/strong&gt;: PDF→text, DOCX→text, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chunking&lt;/strong&gt;: Split into overlapping chunks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embedding&lt;/strong&gt;: Generate vectors for each chunk&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt;: Store chunks + embeddings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Indexing&lt;/strong&gt;: Make searchable&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pipeline runs asynchronously.&lt;/p&gt;
&lt;h2 id=&quot;supported-formats&quot;&gt;Supported Formats&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PDF&lt;/strong&gt;: Portable Document Format&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DOCX&lt;/strong&gt;: Microsoft Word&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTML&lt;/strong&gt;: Web pages&lt;/li&gt;
&lt;li&gt;Other formats via extractors&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Format detected from content, not extension.&lt;/p&gt;
&lt;h2 id=&quot;binary-encoding&quot;&gt;Binary Encoding&lt;/h2&gt;
&lt;p&gt;Documents must be base64 encoded:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#x27;document.pdf&#x27;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#x27;rb&#x27;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;as&lt;/span&gt; f&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
doc_bytes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; f&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;read&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
encoded &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; base64&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;b64encode&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;doc_bytes&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;decode&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#x27;utf-8&#x27;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;metadata&quot;&gt;Metadata&lt;/h2&gt;
&lt;p&gt;Optional RDF triples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Document properties&lt;/li&gt;
&lt;li&gt;Source information&lt;/li&gt;
&lt;li&gt;Custom attributes&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PDF ingestion&lt;/strong&gt;: Process research papers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Document libraries&lt;/strong&gt;: Index document collections&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Content migration&lt;/strong&gt;: Import from other systems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automated processing&lt;/strong&gt;: Batch document loading&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;no-response-data&quot;&gt;No Response Data&lt;/h2&gt;
&lt;p&gt;Returns 202 Accepted immediately:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Document queued&lt;/li&gt;
&lt;li&gt;Processing happens asynchronously&lt;/li&gt;
&lt;li&gt;No status tracking&lt;/li&gt;
&lt;li&gt;Query later to verify indexed&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Load binary documents (PDF, Word, etc.) into processing pipeline.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="document-load-overview">Document Load Overview</h2>
<p>Fire-and-forget binary document loading:</p>
<ul>
<li><strong>Input</strong>: Document data (base64 encoded)</li>
<li><strong>Process</strong>: Extract text, chunk, embed, store</li>
<li><strong>Output</strong>: None (202 Accepted)</li>
</ul>
<p>Asynchronous processing for PDF and other binary formats.</p>
<h2 id="processing-pipeline">Processing Pipeline</h2>
<p>Documents go through:</p>
<ol>
<li><strong>Text extraction</strong>: PDF→text, DOCX→text, etc.</li>
<li><strong>Chunking</strong>: Split into overlapping chunks</li>
<li><strong>Embedding</strong>: Generate vectors for each chunk</li>
<li><strong>Storage</strong>: Store chunks + embeddings</li>
<li><strong>Indexing</strong>: Make searchable</li>
</ol>
<p>Pipeline runs asynchronously.</p>
<h2 id="supported-formats">Supported Formats</h2>
<ul>
<li><strong>PDF</strong>: Portable Document Format</li>
<li><strong>DOCX</strong>: Microsoft Word</li>
<li><strong>HTML</strong>: Web pages</li>
<li>Other formats via extractors</li>
</ul>
<p>Format detected from content, not extension.</p>
<h2 id="binary-encoding">Binary Encoding</h2>
<p>Documents must be base64 encoded:</p>
<pre><code class="language-python"><span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span><span class="token string">'document.pdf'</span><span class="token punctuation">,</span> <span class="token string">'rb'</span><span class="token punctuation">)</span> <span class="token keyword">as</span> f<span class="token punctuation">:</span>
doc_bytes <span class="token operator">=</span> f<span class="token punctuation">.</span>read<span class="token punctuation">(</span><span class="token punctuation">)</span>
encoded <span class="token operator">=</span> base64<span class="token punctuation">.</span>b64encode<span class="token punctuation">(</span>doc_bytes<span class="token punctuation">)</span><span class="token punctuation">.</span>decode<span class="token punctuation">(</span><span class="token string">'utf-8'</span><span class="token punctuation">)</span>
</code></pre>
<h2 id="metadata">Metadata</h2>
<p>Optional RDF triples:</p>
<ul>
<li>Document properties</li>
<li>Source information</li>
<li>Custom attributes</li>
</ul>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li><strong>PDF ingestion</strong>: Process research papers</li>
<li><strong>Document libraries</strong>: Index document collections</li>
<li><strong>Content migration</strong>: Import from other systems</li>
<li><strong>Automated processing</strong>: Batch document loading</li>
</ul>
<h2 id="no-response-data">No Response Data</h2>
<p>Returns 202 Accepted immediately:</p>
<ul>
<li>Document queued</li>
<li>Processing happens asynchronously</li>
<li>No status tracking</li>
<li>Query later to verify indexed</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="data" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">data</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA"> <!-- -->&lt;<!-- -->byte<!-- -->&gt;<!-- --> </span></div> <div><div html="&lt;p&gt;Document data (base64 encoded)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Document data (base64 encoded)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">id</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;Document identifier&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Document identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection for document&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection for document</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hBFaCF sc-fFubTW sc-jgHDmf DPwQp hUqyua bvJPfa" kind="field" title="metadata"><span class="sc-idOkdQ iNiPzl"></span><button aria-label="expand metadata"><span class="property-name">metadata</span><svg class="sc-dQoBM iTiSfO" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp">Array of </span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">objects</span><span class="sc-gTgAvG sc-jeGQnC gCMUGw jJMDiT"> (<!-- -->Triple<!-- -->) </span></div> <div><div html="&lt;p&gt;Document metadata as RDF triples&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Document metadata as RDF triples</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">202<!-- --> </strong><div html="&lt;p&gt;Document accepted for processing&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Document accepted for processing</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/document-load</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/document-load</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99hlq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99hlq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99hlq_0" aria-labelledby="tab_R_99hlq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="Load PDF document" selected="">Load PDF document</option><option value="Load with metadata">Load with metadata</option></select><label>Load PDF document</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"data"</span>: <span class="token string">&quot;JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI+PmVuZG9iagoyIDAgb2JqCjw8L1R5cGUvUGFnZXMvS2lkc1szIDAgUl0vQ291bnQgMT4+ZW5kb2JqCg==&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"id"</span>: <span class="token string">&quot;doc-789&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;research&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9phlq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9phlq_0" tabindex="0" data-rttab="true">202</li><li class="tab-error" role="tab" id="tab_R_9phlq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9phlq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9phlq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9phlq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9phlq_0" aria-labelledby="tab_R_9phlq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><span class="token punctuation">{ }</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9phlq_1" aria-labelledby="tab_R_9phlq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9phlq_2" aria-labelledby="tab_R_9phlq_2"></div></div></div></div></div></div><div id="tag/Flow-Services/operation/sparqlQueryService" data-section-id="tag/Flow-Services/operation/sparqlQueryService" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/sparqlQueryService" id="operation/sparqlQueryService" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Flow-Services/operation/sparqlQueryService" aria-label="tag/Flow-Services/operation/sparqlQueryService"></a>SPARQL query - execute SPARQL 1.1 queries against the knowledge graph<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Execute a SPARQL 1.1 query against the knowledge graph.&lt;/p&gt;
&lt;p&gt;This is a &lt;strong&gt;flow-scoped&lt;/strong&gt; service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.&lt;/p&gt;
&lt;h2 id=&quot;supported-query-types&quot;&gt;Supported Query Types&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SELECT&lt;/strong&gt;: Returns variable bindings as a table of results&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ASK&lt;/strong&gt;: Returns true/false for existence checks&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CONSTRUCT&lt;/strong&gt;: Returns a set of triples built from a template&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DESCRIBE&lt;/strong&gt;: Returns triples describing matched resources&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;sparql-features&quot;&gt;SPARQL Features&lt;/h2&gt;
&lt;p&gt;Supports standard SPARQL 1.1 features including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Basic Graph Patterns (BGPs) with triple pattern matching&lt;/li&gt;
&lt;li&gt;OPTIONAL, UNION, FILTER&lt;/li&gt;
&lt;li&gt;BIND, VALUES&lt;/li&gt;
&lt;li&gt;ORDER BY, LIMIT, OFFSET, DISTINCT&lt;/li&gt;
&lt;li&gt;GROUP BY with aggregates (COUNT, SUM, AVG, MIN, MAX, GROUP_CONCAT)&lt;/li&gt;
&lt;li&gt;Built-in functions (isIRI, STR, REGEX, CONTAINS, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;query-examples&quot;&gt;Query Examples&lt;/h2&gt;
&lt;p&gt;Find all entities of a type:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sparql&quot;&gt;SELECT &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt;s &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt;label WHERE &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt;s &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;http&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;w3&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;org&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1999&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;02&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;rdf&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;syntax&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;ns#type&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;http&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;example&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;com&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;Person&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt;s &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;http&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;w3&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;org&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2000&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;01&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;rdf&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;schema#label&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt;label &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
LIMIT &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check if an entity exists:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sparql&quot;&gt;ASK &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;http&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;example&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;com&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;alice&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt;p &lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt;o &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Execute a SPARQL 1.1 query against the knowledge graph.</p>
<p>This is a <strong>flow-scoped</strong> service. It requires a flow instance
and operates within the workspace associated with the
authenticated bearer token.</p>
<h2 id="supported-query-types">Supported Query Types</h2>
<ul>
<li><strong>SELECT</strong>: Returns variable bindings as a table of results</li>
<li><strong>ASK</strong>: Returns true/false for existence checks</li>
<li><strong>CONSTRUCT</strong>: Returns a set of triples built from a template</li>
<li><strong>DESCRIBE</strong>: Returns triples describing matched resources</li>
</ul>
<h2 id="sparql-features">SPARQL Features</h2>
<p>Supports standard SPARQL 1.1 features including:</p>
<ul>
<li>Basic Graph Patterns (BGPs) with triple pattern matching</li>
<li>OPTIONAL, UNION, FILTER</li>
<li>BIND, VALUES</li>
<li>ORDER BY, LIMIT, OFFSET, DISTINCT</li>
<li>GROUP BY with aggregates (COUNT, SUM, AVG, MIN, MAX, GROUP_CONCAT)</li>
<li>Built-in functions (isIRI, STR, REGEX, CONTAINS, etc.)</li>
</ul>
<h2 id="query-examples">Query Examples</h2>
<p>Find all entities of a type:</p>
<pre><code class="language-sparql">SELECT <span class="token operator">?</span>s <span class="token operator">?</span>label WHERE <span class="token punctuation">{</span>
<span class="token operator">?</span>s <span class="token operator">&lt;</span>http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>www<span class="token punctuation">.</span>w3<span class="token punctuation">.</span>org<span class="token operator">/</span><span class="token number">1999</span><span class="token operator">/</span><span class="token number">02</span><span class="token operator">/</span><span class="token number">22</span><span class="token operator">-</span>rdf<span class="token operator">-</span>syntax<span class="token operator">-</span>ns#type<span class="token operator">></span> <span class="token operator">&lt;</span>http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>example<span class="token punctuation">.</span>com<span class="token operator">/</span>Person<span class="token operator">></span> <span class="token punctuation">.</span>
<span class="token operator">?</span>s <span class="token operator">&lt;</span>http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>www<span class="token punctuation">.</span>w3<span class="token punctuation">.</span>org<span class="token operator">/</span><span class="token number">2000</span><span class="token operator">/</span><span class="token number">01</span><span class="token operator">/</span>rdf<span class="token operator">-</span>schema#label<span class="token operator">></span> <span class="token operator">?</span>label <span class="token punctuation">.</span>
<span class="token punctuation">}</span>
LIMIT <span class="token number">10</span>
</code></pre>
<p>Check if an entity exists:</p>
<pre><code class="language-sparql">ASK <span class="token punctuation">{</span> <span class="token operator">&lt;</span>http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>example<span class="token punctuation">.</span>com<span class="token operator">/</span>alice<span class="token operator">></span> <span class="token operator">?</span>p <span class="token operator">?</span>o <span class="token punctuation">}</span>
</code></pre>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">flow</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/json</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="query" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">query</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><div html="&lt;p&gt;SPARQL 1.1 query string&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>SPARQL 1.1 query string</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">collection</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection identifier&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Collection identifier</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="limit" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">limit</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">10000</span></div> <div><div html="&lt;p&gt;Safety limit on number of results&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Safety limit on number of results</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Successful response</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/flow/{flow}/service/sparql-query</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/sparql-query</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Request samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="react-tabs__tab react-tabs__tab--selected" role="tab" id="tab_R_99ilq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_99ilq_0" tabindex="0" data-rttab="true">Payload</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_99ilq_0" aria-labelledby="tab_R_99ilq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="SELECT query" selected="">SELECT query</option><option value="ASK query">ASK query</option></select><label>SELECT query</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"query"</span>: <span class="token string">&quot;SELECT ?s ?p ?o WHERE { ?s ?p ?o } LIMIT 10&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"collection"</span>: <span class="token string">&quot;default&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9pilq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pilq_0" tabindex="0" data-rttab="true">200</li><li class="tab-error" role="tab" id="tab_R_9pilq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pilq_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_9pilq_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_9pilq_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9pilq_0" aria-labelledby="tab_R_9pilq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Example</span><div class="sc-jJEKGn sc-AzeoO ekMQOb dMpNQv"><svg class="sc-iktELE lgCKWg" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg><select class="dropdown-select"><option value="SELECT result" selected="">SELECT result</option><option value="ASK result">ASK result</option></select><label>SELECT result</label></div></div><div><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"query-type"</span>: <span class="token string">&quot;select&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"variables"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token string">&quot;s&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;p&quot;</span>,</div></li><li><div class="hoverable collapsed"><span class="token string">&quot;o&quot;</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"bindings"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"values"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"t"</span>: <span class="token string">&quot;i&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"i"</span>: <span class="token string">&quot;</span><a href="http://example.com/alice">http://example.com/alice</a><span class="token string">&quot;</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"t"</span>: <span class="token string">&quot;i&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"i"</span>: <span class="token string">&quot;</span><a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#type">http://www.w3.org/1999/02/22-rdf-syntax-ns#type</a><span class="token string">&quot;</span></div></li></ul><span class="token punctuation">}</span>,</div></li><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"t"</span>: <span class="token string">&quot;i&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"i"</span>: <span class="token string">&quot;</span><a href="http://example.com/Person">http://example.com/Person</a><span class="token string">&quot;</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pilq_1" aria-labelledby="tab_R_9pilq_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_9pilq_2" aria-labelledby="tab_R_9pilq_2"></div></div></div></div></div></div><div id="tag/ImportExport" data-section-id="tag/ImportExport" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/ImportExport" aria-label="tag/ImportExport"></a>Import/Export</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;Bulk data import and export&lt;/p&gt;
"><p>Bulk data import and export</p>
</div></div></div><div id="tag/ImportExport/operation/documentStream" data-section-id="tag/ImportExport/operation/documentStream" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/documentStream" id="operation/documentStream" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/ImportExport/operation/documentStream" aria-label="tag/ImportExport/operation/documentStream"></a>Stream document content from library<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Streams the raw content of a document stored in the library.
Returns the document content in chunked transfer encoding.&lt;/p&gt;
&lt;h2 id=&quot;parameters&quot;&gt;Parameters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;document-id&lt;/code&gt;: Document IRI to retrieve (required)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chunk-size&lt;/code&gt;: Size of each response chunk in bytes (optional, default: 1MB)&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Streams the raw content of a document stored in the library.
Returns the document content in chunked transfer encoding.</p>
<h2 id="parameters">Parameters</h2>
<ul>
<li><code>document-id</code>: Document IRI to retrieve (required)</li>
<li><code>chunk-size</code>: Size of each response chunk in bytes (optional, default: 1MB)</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">query<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="document-id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">document-id</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">document-id=urn:trustgraph:doc:abc123</span></div><div><div html="&lt;p&gt;Document IRI to retrieve&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Document IRI to retrieve</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="chunk-size" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">chunk-size</span></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">integer</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Default:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">1048576</span></div> <div><div html="&lt;p&gt;Chunk size in bytes (default 1MB)&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Chunk size in bytes (default 1MB)</p>
</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Document content streamed as raw bytes&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Document content streamed as raw bytes</p>
</div></button></div><div><button class="sc-cbDJdZ JFbul" disabled=""><strong class="sc-fWPeRB mtsUp">400<!-- --> </strong><div html="&lt;p&gt;Missing required parameters&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Missing required parameters</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="get" class="sc-eFucnX iykXxP http-verb get">get</span><span class="sc-FyhMp kmRXcZ">/api/v1/document-stream</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/document-stream</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab_R_175ma_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_175ma_0" tabindex="0" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_175ma_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_175ma_1" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_175ma_0" aria-labelledby="tab_R_175ma_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"error"</span>: <span class="token string">&quot;Unauthorized&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_175ma_1" aria-labelledby="tab_R_175ma_1"></div></div></div></div></div></div><div id="tag/ImportExport/operation/importCore" data-section-id="tag/ImportExport/operation/importCore" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/importCore" id="operation/importCore" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/ImportExport/operation/importCore" aria-label="tag/ImportExport/operation/importCore"></a>Import Core - bulk import triples and embeddings<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Import knowledge cores in bulk using streaming MessagePack format.&lt;/p&gt;
&lt;h2 id=&quot;import-core-overview&quot;&gt;Import Core Overview&lt;/h2&gt;
&lt;p&gt;Bulk data import for knowledge graph:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Format&lt;/strong&gt;: MessagePack streaming&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Content&lt;/strong&gt;: Triples and/or graph embeddings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Target&lt;/strong&gt;: Global knowledge storage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use&lt;/strong&gt;: Backup restoration, data migration, bulk loading&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;messagepack-protocol&quot;&gt;MessagePack Protocol&lt;/h2&gt;
&lt;p&gt;Request body is MessagePack stream with message tuples:&lt;/p&gt;
&lt;h3 id=&quot;triple-message&quot;&gt;Triple Message&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;t&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;m&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Metadata&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;i&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;core-id&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Knowledge core ID&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;m&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Metadata triples array&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;c&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;collection&quot;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Collection&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;t&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Triples array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;graph-embeddings-message&quot;&gt;Graph Embeddings Message&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;ge&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;m&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Metadata&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;i&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;core-id&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;m&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;c&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;collection&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Entities array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;v&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;uri&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Entity RdfValue&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;v&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Vectors&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;query-parameters&quot;&gt;Query Parameters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;id&lt;/strong&gt;: Knowledge core ID&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;streaming&quot;&gt;Streaming&lt;/h2&gt;
&lt;p&gt;Multiple messages can be sent in stream.
Each message processed as received.
No response body - returns 202 Accepted.&lt;/p&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Backup restoration&lt;/strong&gt;: Restore from export&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data migration&lt;/strong&gt;: Move data between systems&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bulk loading&lt;/strong&gt;: Initial knowledge base population&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Replication&lt;/strong&gt;: Copy knowledge cores&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Import knowledge cores in bulk using streaming MessagePack format.</p>
<h2 id="import-core-overview">Import Core Overview</h2>
<p>Bulk data import for knowledge graph:</p>
<ul>
<li><strong>Format</strong>: MessagePack streaming</li>
<li><strong>Content</strong>: Triples and/or graph embeddings</li>
<li><strong>Target</strong>: Global knowledge storage</li>
<li><strong>Use</strong>: Backup restoration, data migration, bulk loading</li>
</ul>
<h2 id="messagepack-protocol">MessagePack Protocol</h2>
<p>Request body is MessagePack stream with message tuples:</p>
<h3 id="triple-message">Triple Message</h3>
<pre><code><span class="token punctuation">(</span><span class="token string">"t"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
<span class="token string">"m"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token comment">// Metadata</span>
<span class="token string">"i"</span><span class="token punctuation">:</span> <span class="token string">"core-id"</span><span class="token punctuation">,</span> <span class="token comment">// Knowledge core ID</span>
<span class="token string">"m"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token comment">// Metadata triples array</span>
<span class="token string">"c"</span><span class="token punctuation">:</span> <span class="token string">"collection"</span> <span class="token comment">// Collection</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token string">"t"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token comment">// Triples array</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre>
<h3 id="graph-embeddings-message">Graph Embeddings Message</h3>
<pre><code><span class="token punctuation">(</span><span class="token string">"ge"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
<span class="token string">"m"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token comment">// Metadata</span>
<span class="token string">"i"</span><span class="token punctuation">:</span> <span class="token string">"core-id"</span><span class="token punctuation">,</span>
<span class="token string">"m"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token string">"c"</span><span class="token punctuation">:</span> <span class="token string">"collection"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token string">"e"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span> <span class="token comment">// Entities array</span>
<span class="token punctuation">{</span>
<span class="token string">"e"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token string">"v"</span><span class="token punctuation">:</span> <span class="token string">"uri"</span><span class="token punctuation">,</span> <span class="token string">"e"</span><span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment">// Entity RdfValue</span>
<span class="token string">"v"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token number">0.1</span><span class="token punctuation">,</span> <span class="token number">0.2</span><span class="token punctuation">,</span> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token comment">// Vectors</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre>
<h2 id="query-parameters">Query Parameters</h2>
<ul>
<li><strong>id</strong>: Knowledge core ID</li>
</ul>
<h2 id="streaming">Streaming</h2>
<p>Multiple messages can be sent in stream.
Each message processed as received.
No response body - returns 202 Accepted.</p>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li><strong>Backup restoration</strong>: Restore from export</li>
<li><strong>Data migration</strong>: Move data between systems</li>
<li><strong>Bulk loading</strong>: Initial knowledge base population</li>
<li><strong>Replication</strong>: Copy knowledge cores</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">query<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">id</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">id=core-123</span></div><div><div html="&lt;p&gt;Knowledge core ID to import&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Knowledge core ID to import</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-iqHZue iFTCOQ">Request Body schema: <span class="sc-gWHgjU eBDHRN">application/msgpack</span><div class="sc-gTgAvG sc-eJMOEj sc-dUrlDD gCMUGw egFobb eEdthm">required</div></h5><div html="" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"></div><div><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA"> <!-- -->&lt;<!-- -->binary<!-- -->&gt;<!-- --> </span></div> <div><div html="&lt;p&gt;MessagePack stream of knowledge data&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>MessagePack stream of knowledge data</p>
</div></div></div></div><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">202<!-- --> </strong><div html="&lt;p&gt;Import accepted and processing&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Import accepted and processing</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="post" class="sc-eFucnX kcqnuN http-verb post">post</span><span class="sc-FyhMp kmRXcZ">/api/v1/import-core</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/import-core</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_176ma_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_176ma_0" tabindex="0" data-rttab="true">202</li><li class="tab-error" role="tab" id="tab_R_176ma_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_176ma_1" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_176ma_2" aria-selected="false" aria-disabled="false" aria-controls="panel_R_176ma_2" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_176ma_0" aria-labelledby="tab_R_176ma_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><span class="token punctuation">{ }</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_176ma_1" aria-labelledby="tab_R_176ma_1"></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_176ma_2" aria-labelledby="tab_R_176ma_2"></div></div></div></div></div></div><div id="tag/ImportExport/operation/exportCore" data-section-id="tag/ImportExport/operation/exportCore" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/exportCore" id="operation/exportCore" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/ImportExport/operation/exportCore" aria-label="tag/ImportExport/operation/exportCore"></a>Export Core - bulk export triples and embeddings<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Export knowledge cores in bulk using streaming MessagePack format.&lt;/p&gt;
&lt;h2 id=&quot;export-core-overview&quot;&gt;Export Core Overview&lt;/h2&gt;
&lt;p&gt;Bulk data export for knowledge graph:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Format&lt;/strong&gt;: MessagePack streaming&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Content&lt;/strong&gt;: Triples and graph embeddings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Source&lt;/strong&gt;: Global knowledge storage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use&lt;/strong&gt;: Backups, data migration, archival&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;messagepack-protocol&quot;&gt;MessagePack Protocol&lt;/h2&gt;
&lt;p&gt;Response body is MessagePack stream with message tuples:&lt;/p&gt;
&lt;h3 id=&quot;triple-message&quot;&gt;Triple Message&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;t&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;m&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Metadata&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;i&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;core-id&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Knowledge core ID&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;m&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Metadata triples array&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;c&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;collection&quot;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Collection&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;t&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Triples array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;graph-embeddings-message&quot;&gt;Graph Embeddings Message&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;ge&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;m&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Metadata&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;i&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;core-id&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;m&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;c&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;collection&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Entities array&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;v&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;uri&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;e&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Entity RdfValue&lt;/span&gt;
&lt;span class=&quot;token string&quot;&gt;&quot;v&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Vectors&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;end-of-stream-message&quot;&gt;End of Stream Message&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;eos&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;query-parameters&quot;&gt;Query Parameters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;id&lt;/strong&gt;: Knowledge core ID to export&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;streaming&quot;&gt;Streaming&lt;/h2&gt;
&lt;p&gt;Data streamed incrementally:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Triples sent first&lt;/li&gt;
&lt;li&gt;Graph embeddings sent next&lt;/li&gt;
&lt;li&gt;EOS marker signals completion&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Client should process messages as received.&lt;/p&gt;
&lt;h2 id=&quot;use-cases&quot;&gt;Use Cases&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Backups&lt;/strong&gt;: Export for disaster recovery&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data migration&lt;/strong&gt;: Move to another system&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Archival&lt;/strong&gt;: Long-term storage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Replication&lt;/strong&gt;: Copy knowledge cores&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analysis&lt;/strong&gt;: External processing&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Export knowledge cores in bulk using streaming MessagePack format.</p>
<h2 id="export-core-overview">Export Core Overview</h2>
<p>Bulk data export for knowledge graph:</p>
<ul>
<li><strong>Format</strong>: MessagePack streaming</li>
<li><strong>Content</strong>: Triples and graph embeddings</li>
<li><strong>Source</strong>: Global knowledge storage</li>
<li><strong>Use</strong>: Backups, data migration, archival</li>
</ul>
<h2 id="messagepack-protocol">MessagePack Protocol</h2>
<p>Response body is MessagePack stream with message tuples:</p>
<h3 id="triple-message">Triple Message</h3>
<pre><code><span class="token punctuation">(</span><span class="token string">"t"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
<span class="token string">"m"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token comment">// Metadata</span>
<span class="token string">"i"</span><span class="token punctuation">:</span> <span class="token string">"core-id"</span><span class="token punctuation">,</span> <span class="token comment">// Knowledge core ID</span>
<span class="token string">"m"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token comment">// Metadata triples array</span>
<span class="token string">"c"</span><span class="token punctuation">:</span> <span class="token string">"collection"</span> <span class="token comment">// Collection</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token string">"t"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token comment">// Triples array</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre>
<h3 id="graph-embeddings-message">Graph Embeddings Message</h3>
<pre><code><span class="token punctuation">(</span><span class="token string">"ge"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
<span class="token string">"m"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token comment">// Metadata</span>
<span class="token string">"i"</span><span class="token punctuation">:</span> <span class="token string">"core-id"</span><span class="token punctuation">,</span>
<span class="token string">"m"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token string">"c"</span><span class="token punctuation">:</span> <span class="token string">"collection"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token string">"e"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span> <span class="token comment">// Entities array</span>
<span class="token punctuation">{</span>
<span class="token string">"e"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span><span class="token string">"v"</span><span class="token punctuation">:</span> <span class="token string">"uri"</span><span class="token punctuation">,</span> <span class="token string">"e"</span><span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment">// Entity RdfValue</span>
<span class="token string">"v"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token number">0.1</span><span class="token punctuation">,</span> <span class="token number">0.2</span><span class="token punctuation">,</span> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">]</span> <span class="token comment">// Vectors</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre>
<h3 id="end-of-stream-message">End of Stream Message</h3>
<pre><code><span class="token punctuation">(</span><span class="token string">"eos"</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre>
<h2 id="query-parameters">Query Parameters</h2>
<ul>
<li><strong>id</strong>: Knowledge core ID to export</li>
</ul>
<h2 id="streaming">Streaming</h2>
<p>Data streamed incrementally:</p>
<ul>
<li>Triples sent first</li>
<li>Graph embeddings sent next</li>
<li>EOS marker signals completion</li>
</ul>
<p>Client should process messages as received.</p>
<h2 id="use-cases">Use Cases</h2>
<ul>
<li><strong>Backups</strong>: Export for disaster recovery</li>
<li><strong>Data migration</strong>: Move to another system</li>
<li><strong>Archival</strong>: Long-term storage</li>
<li><strong>Replication</strong>: Copy knowledge cores</li>
<li><strong>Analysis</strong>: External processing</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">query<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="id" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">id</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">id=core-123</span></div><div><div html="&lt;p&gt;Knowledge core ID to export&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Knowledge core ID to export</p>
</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Export stream&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Export stream</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="get" class="sc-eFucnX iykXxP http-verb get">get</span><span class="sc-FyhMp kmRXcZ">/api/v1/export-core</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/export-core</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab_R_177ma_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_177ma_0" tabindex="0" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_177ma_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_177ma_1" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_177ma_0" aria-labelledby="tab_R_177ma_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"error"</span>: <span class="token string">&quot;Unauthorized&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_177ma_1" aria-labelledby="tab_R_177ma_1"></div></div></div></div></div></div><div id="tag/WebSocket" data-section-id="tag/WebSocket" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/WebSocket" aria-label="tag/WebSocket"></a>WebSocket</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;WebSocket interfaces&lt;/p&gt;
"><p>WebSocket interfaces</p>
</div></div></div><div id="tag/WebSocket/operation/websocketConnection" data-section-id="tag/WebSocket/operation/websocketConnection" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/websocketConnection" id="operation/websocketConnection" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/WebSocket/operation/websocketConnection" aria-label="tag/WebSocket/operation/websocketConnection"></a>WebSocket - multiplexed service interface<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;WebSocket interface providing multiplexed access to all TrustGraph services over a single persistent connection.&lt;/p&gt;
&lt;h2 id=&quot;overview&quot;&gt;Overview&lt;/h2&gt;
&lt;p&gt;The WebSocket API provides access to the same services as the REST API but with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multiplexed&lt;/strong&gt;: Multiple concurrent requests over one connection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Asynchronous&lt;/strong&gt;: Non-blocking request/response with ID matching&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficient&lt;/strong&gt;: Reduced overhead compared to HTTP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-time&lt;/strong&gt;: Low latency bidirectional communication&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;connection&quot;&gt;Connection&lt;/h2&gt;
&lt;p&gt;Establish WebSocket connection to:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ws&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;localhost&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;8088&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;api&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;v1&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;socket
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;message-protocol&quot;&gt;Message Protocol&lt;/h2&gt;
&lt;p&gt;All messages are JSON objects with the following structure:&lt;/p&gt;
&lt;h3 id=&quot;request-message-format&quot;&gt;Request Message Format&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Workspace-Scoped Service Request&lt;/strong&gt; (no flow parameter):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-123&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;service&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;config&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;operation&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;list&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;flow&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Flow-Scoped Service Request&lt;/strong&gt; (with flow parameter):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-456&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;service&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;agent&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;flow&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;my-flow&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;question&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;What is quantum computing?&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;streaming&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Request Fields&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (string, required): Client-generated unique identifier for this request within the session. Used to match responses to requests.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;service&lt;/code&gt; (string, required): Service identifier (e.g., &amp;quot;config&amp;quot;, &amp;quot;agent&amp;quot;, &amp;quot;document-rag&amp;quot;). Same as &lt;code&gt;{kind}&lt;/code&gt; in REST URLs.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flow&lt;/code&gt; (string, optional): Flow ID for flow-scoped services. Omit for workspace-scoped and global services.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;request&lt;/code&gt; (object, required): Service-specific request payload. Same structure as REST API request body.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;response-message-format&quot;&gt;Response Message Format&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Success Response&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-123&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;response&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;chunk-type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;answer&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Quantum computing uses...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;end-of-stream&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Error Response&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-123&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;error&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;gateway-error&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token string-property property&quot;&gt;&quot;message&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Flow not found&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Response Fields&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (string, required): Matches the &lt;code&gt;id&lt;/code&gt; from the request. Client uses this to correlate responses.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;response&lt;/code&gt; (object, conditional): Service-specific response payload. Same structure as REST API response. Present on success.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;error&lt;/code&gt; (object, conditional): Error information with &lt;code&gt;type&lt;/code&gt; and &lt;code&gt;message&lt;/code&gt; fields. Present on failure.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;service-routing&quot;&gt;Service Routing&lt;/h2&gt;
&lt;p&gt;The WebSocket protocol routes to services using message parameters instead of URL paths:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;REST Endpoint&lt;/th&gt;
&lt;th&gt;WebSocket Message&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST /api/v1/config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{&amp;quot;service&amp;quot;: &amp;quot;config&amp;quot;}&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST /api/v1/flow/{flow}/service/agent&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{&amp;quot;service&amp;quot;: &amp;quot;agent&amp;quot;, &amp;quot;flow&amp;quot;: &amp;quot;my-flow&amp;quot;}&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Workspace-Scoped Services&lt;/strong&gt; (no &lt;code&gt;flow&lt;/code&gt; parameter, workspace from token):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;config&lt;/code&gt; - Configuration management&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flow&lt;/code&gt; - Flow lifecycle and blueprints&lt;/li&gt;
&lt;li&gt;&lt;code&gt;librarian&lt;/code&gt; - Document library management&lt;/li&gt;
&lt;li&gt;&lt;code&gt;knowledge&lt;/code&gt; - Knowledge graph core management&lt;/li&gt;
&lt;li&gt;&lt;code&gt;collection-management&lt;/code&gt; - Collection metadata&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Flow-Scoped Services&lt;/strong&gt; (require &lt;code&gt;flow&lt;/code&gt; parameter, workspace from token):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI services: &lt;code&gt;agent&lt;/code&gt;, &lt;code&gt;text-completion&lt;/code&gt;, &lt;code&gt;prompt&lt;/code&gt;, &lt;code&gt;document-rag&lt;/code&gt;, &lt;code&gt;graph-rag&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Embeddings: &lt;code&gt;embeddings&lt;/code&gt;, &lt;code&gt;graph-embeddings&lt;/code&gt;, &lt;code&gt;document-embeddings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Query: &lt;code&gt;triples&lt;/code&gt;, &lt;code&gt;objects&lt;/code&gt;, &lt;code&gt;nlp-query&lt;/code&gt;, &lt;code&gt;structured-query&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Data loading: &lt;code&gt;text-load&lt;/code&gt;, &lt;code&gt;document-load&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Utilities: &lt;code&gt;mcp-tool&lt;/code&gt;, &lt;code&gt;structured-diag&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;requestresponse-schemas&quot;&gt;Request/Response Schemas&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;request&lt;/code&gt; and &lt;code&gt;response&lt;/code&gt; fields use &lt;strong&gt;identical schemas&lt;/strong&gt; to the REST API for each service.
See individual service documentation for detailed request/response formats.&lt;/p&gt;
&lt;h2 id=&quot;multiplexing-and-asynchronous-operation&quot;&gt;Multiplexing and Asynchronous Operation&lt;/h2&gt;
&lt;p&gt;Multiple requests can be in flight simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Client sends requests with unique &lt;code&gt;id&lt;/code&gt; values&lt;/li&gt;
&lt;li&gt;Server processes requests concurrently&lt;/li&gt;
&lt;li&gt;Responses arrive asynchronously and may be out of order&lt;/li&gt;
&lt;li&gt;Client matches responses to requests using the &lt;code&gt;id&lt;/code&gt; field&lt;/li&gt;
&lt;li&gt;No head-of-line blocking&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example concurrent requests&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;service&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;config&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;service&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;agent&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;flow&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;f1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-3&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;service&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;document-rag&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;flow&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;f2&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;request&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Responses may arrive in any order: &lt;code&gt;req-2&lt;/code&gt;, &lt;code&gt;req-1&lt;/code&gt;, &lt;code&gt;req-3&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&quot;streaming-responses&quot;&gt;Streaming Responses&lt;/h2&gt;
&lt;p&gt;Services that support streaming (e.g., agent, RAG) send multiple response messages with the same &lt;code&gt;id&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;response&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;chunk-type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;thought&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;end-of-stream&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;response&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;chunk-type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;answer&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;end-of-stream&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;req-1&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;response&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token string-property property&quot;&gt;&quot;chunk-type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;answer&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;content&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string-property property&quot;&gt;&quot;end-of-stream&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;end-of-stream&lt;/code&gt; flag (or service-specific completion flag) indicates the final message.&lt;/p&gt;
&lt;h2 id=&quot;authentication&quot;&gt;Authentication&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;/api/v1/socket&lt;/code&gt; endpoint uses in-band authentication.
The WebSocket handshake is accepted unconditionally. After
connecting, the client sends a bearer token as the first frame.
The gateway resolves the token to an identity and workspace.
All subsequent requests operate within that workspace context.&lt;/p&gt;
&lt;h2 id=&quot;benefits-over-rest&quot;&gt;Benefits Over REST&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lower latency&lt;/strong&gt;: No TCP/TLS handshake per request&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Connection reuse&lt;/strong&gt;: Single persistent connection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reduced overhead&lt;/strong&gt;: No HTTP headers per message&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;True streaming&lt;/strong&gt;: Bidirectional real-time communication&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Efficient multiplexing&lt;/strong&gt;: Concurrent operations without connection pooling&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>WebSocket interface providing multiplexed access to all TrustGraph services over a single persistent connection.</p>
<h2 id="overview">Overview</h2>
<p>The WebSocket API provides access to the same services as the REST API but with:</p>
<ul>
<li><strong>Multiplexed</strong>: Multiple concurrent requests over one connection</li>
<li><strong>Asynchronous</strong>: Non-blocking request/response with ID matching</li>
<li><strong>Efficient</strong>: Reduced overhead compared to HTTP</li>
<li><strong>Real-time</strong>: Low latency bidirectional communication</li>
</ul>
<h2 id="connection">Connection</h2>
<p>Establish WebSocket connection to:</p>
<pre><code>ws<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>localhost<span class="token punctuation">:</span><span class="token number">8088</span><span class="token operator">/</span>api<span class="token operator">/</span>v1<span class="token operator">/</span>socket
</code></pre>
<h2 id="message-protocol">Message Protocol</h2>
<p>All messages are JSON objects with the following structure:</p>
<h3 id="request-message-format">Request Message Format</h3>
<p><strong>Workspace-Scoped Service Request</strong> (no flow parameter):</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-123"</span><span class="token punctuation">,</span>
<span class="token string-property property">"service"</span><span class="token operator">:</span> <span class="token string">"config"</span><span class="token punctuation">,</span>
<span class="token string-property property">"request"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token string-property property">"operation"</span><span class="token operator">:</span> <span class="token string">"list"</span><span class="token punctuation">,</span>
<span class="token string-property property">"type"</span><span class="token operator">:</span> <span class="token string">"flow"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<p><strong>Flow-Scoped Service Request</strong> (with flow parameter):</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-456"</span><span class="token punctuation">,</span>
<span class="token string-property property">"service"</span><span class="token operator">:</span> <span class="token string">"agent"</span><span class="token punctuation">,</span>
<span class="token string-property property">"flow"</span><span class="token operator">:</span> <span class="token string">"my-flow"</span><span class="token punctuation">,</span>
<span class="token string-property property">"request"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token string-property property">"question"</span><span class="token operator">:</span> <span class="token string">"What is quantum computing?"</span><span class="token punctuation">,</span>
<span class="token string-property property">"streaming"</span><span class="token operator">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<p><strong>Request Fields</strong>:</p>
<ul>
<li><code>id</code> (string, required): Client-generated unique identifier for this request within the session. Used to match responses to requests.</li>
<li><code>service</code> (string, required): Service identifier (e.g., &quot;config&quot;, &quot;agent&quot;, &quot;document-rag&quot;). Same as <code>{kind}</code> in REST URLs.</li>
<li><code>flow</code> (string, optional): Flow ID for flow-scoped services. Omit for workspace-scoped and global services.</li>
<li><code>request</code> (object, required): Service-specific request payload. Same structure as REST API request body.</li>
</ul>
<h3 id="response-message-format">Response Message Format</h3>
<p><strong>Success Response</strong>:</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-123"</span><span class="token punctuation">,</span>
<span class="token string-property property">"response"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token string-property property">"chunk-type"</span><span class="token operator">:</span> <span class="token string">"answer"</span><span class="token punctuation">,</span>
<span class="token string-property property">"content"</span><span class="token operator">:</span> <span class="token string">"Quantum computing uses..."</span><span class="token punctuation">,</span>
<span class="token string-property property">"end-of-stream"</span><span class="token operator">:</span> <span class="token boolean">false</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<p><strong>Error Response</strong>:</p>
<pre><code class="language-json"><span class="token punctuation">{</span>
<span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-123"</span><span class="token punctuation">,</span>
<span class="token string-property property">"error"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token string-property property">"type"</span><span class="token operator">:</span> <span class="token string">"gateway-error"</span><span class="token punctuation">,</span>
<span class="token string-property property">"message"</span><span class="token operator">:</span> <span class="token string">"Flow not found"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<p><strong>Response Fields</strong>:</p>
<ul>
<li><code>id</code> (string, required): Matches the <code>id</code> from the request. Client uses this to correlate responses.</li>
<li><code>response</code> (object, conditional): Service-specific response payload. Same structure as REST API response. Present on success.</li>
<li><code>error</code> (object, conditional): Error information with <code>type</code> and <code>message</code> fields. Present on failure.</li>
</ul>
<h2 id="service-routing">Service Routing</h2>
<p>The WebSocket protocol routes to services using message parameters instead of URL paths:</p>
<table>
<thead>
<tr>
<th>REST Endpoint</th>
<th>WebSocket Message</th>
</tr>
</thead>
<tbody><tr>
<td><code>POST /api/v1/config</code></td>
<td><code>{&quot;service&quot;: &quot;config&quot;}</code></td>
</tr>
<tr>
<td><code>POST /api/v1/flow/{flow}/service/agent</code></td>
<td><code>{&quot;service&quot;: &quot;agent&quot;, &quot;flow&quot;: &quot;my-flow&quot;}</code></td>
</tr>
</tbody></table>
<p><strong>Workspace-Scoped Services</strong> (no <code>flow</code> parameter, workspace from token):</p>
<ul>
<li><code>config</code> - Configuration management</li>
<li><code>flow</code> - Flow lifecycle and blueprints</li>
<li><code>librarian</code> - Document library management</li>
<li><code>knowledge</code> - Knowledge graph core management</li>
<li><code>collection-management</code> - Collection metadata</li>
</ul>
<p><strong>Flow-Scoped Services</strong> (require <code>flow</code> parameter, workspace from token):</p>
<ul>
<li>AI services: <code>agent</code>, <code>text-completion</code>, <code>prompt</code>, <code>document-rag</code>, <code>graph-rag</code></li>
<li>Embeddings: <code>embeddings</code>, <code>graph-embeddings</code>, <code>document-embeddings</code></li>
<li>Query: <code>triples</code>, <code>objects</code>, <code>nlp-query</code>, <code>structured-query</code></li>
<li>Data loading: <code>text-load</code>, <code>document-load</code></li>
<li>Utilities: <code>mcp-tool</code>, <code>structured-diag</code></li>
</ul>
<h2 id="requestresponse-schemas">Request/Response Schemas</h2>
<p>The <code>request</code> and <code>response</code> fields use <strong>identical schemas</strong> to the REST API for each service.
See individual service documentation for detailed request/response formats.</p>
<h2 id="multiplexing-and-asynchronous-operation">Multiplexing and Asynchronous Operation</h2>
<p>Multiple requests can be in flight simultaneously:</p>
<ul>
<li>Client sends requests with unique <code>id</code> values</li>
<li>Server processes requests concurrently</li>
<li>Responses arrive asynchronously and may be out of order</li>
<li>Client matches responses to requests using the <code>id</code> field</li>
<li>No head-of-line blocking</li>
</ul>
<p><strong>Example concurrent requests</strong>:</p>
<pre><code class="language-json"><span class="token punctuation">{</span><span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-1"</span><span class="token punctuation">,</span> <span class="token string-property property">"service"</span><span class="token operator">:</span> <span class="token string">"config"</span><span class="token punctuation">,</span> <span class="token string-property property">"request"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token operator">...</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
<span class="token punctuation">{</span><span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-2"</span><span class="token punctuation">,</span> <span class="token string-property property">"service"</span><span class="token operator">:</span> <span class="token string">"agent"</span><span class="token punctuation">,</span> <span class="token string-property property">"flow"</span><span class="token operator">:</span> <span class="token string">"f1"</span><span class="token punctuation">,</span> <span class="token string-property property">"request"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token operator">...</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
<span class="token punctuation">{</span><span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-3"</span><span class="token punctuation">,</span> <span class="token string-property property">"service"</span><span class="token operator">:</span> <span class="token string">"document-rag"</span><span class="token punctuation">,</span> <span class="token string-property property">"flow"</span><span class="token operator">:</span> <span class="token string">"f2"</span><span class="token punctuation">,</span> <span class="token string-property property">"request"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token operator">...</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
</code></pre>
<p>Responses may arrive in any order: <code>req-2</code>, <code>req-1</code>, <code>req-3</code></p>
<h2 id="streaming-responses">Streaming Responses</h2>
<p>Services that support streaming (e.g., agent, RAG) send multiple response messages with the same <code>id</code>:</p>
<pre><code class="language-json"><span class="token punctuation">{</span><span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-1"</span><span class="token punctuation">,</span> <span class="token string-property property">"response"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token string-property property">"chunk-type"</span><span class="token operator">:</span> <span class="token string">"thought"</span><span class="token punctuation">,</span> <span class="token string-property property">"content"</span><span class="token operator">:</span> <span class="token string">"..."</span><span class="token punctuation">,</span> <span class="token string-property property">"end-of-stream"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
<span class="token punctuation">{</span><span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-1"</span><span class="token punctuation">,</span> <span class="token string-property property">"response"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token string-property property">"chunk-type"</span><span class="token operator">:</span> <span class="token string">"answer"</span><span class="token punctuation">,</span> <span class="token string-property property">"content"</span><span class="token operator">:</span> <span class="token string">"..."</span><span class="token punctuation">,</span> <span class="token string-property property">"end-of-stream"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
<span class="token punctuation">{</span><span class="token string-property property">"id"</span><span class="token operator">:</span> <span class="token string">"req-1"</span><span class="token punctuation">,</span> <span class="token string-property property">"response"</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token string-property property">"chunk-type"</span><span class="token operator">:</span> <span class="token string">"answer"</span><span class="token punctuation">,</span> <span class="token string-property property">"content"</span><span class="token operator">:</span> <span class="token string">"..."</span><span class="token punctuation">,</span> <span class="token string-property property">"end-of-stream"</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">}</span><span class="token punctuation">}</span>
</code></pre>
<p>The <code>end-of-stream</code> flag (or service-specific completion flag) indicates the final message.</p>
<h2 id="authentication">Authentication</h2>
<p>The <code>/api/v1/socket</code> endpoint uses in-band authentication.
The WebSocket handshake is accepted unconditionally. After
connecting, the client sends a bearer token as the first frame.
The gateway resolves the token to an identity and workspace.
All subsequent requests operate within that workspace context.</p>
<h2 id="benefits-over-rest">Benefits Over REST</h2>
<ul>
<li><strong>Lower latency</strong>: No TCP/TLS handshake per request</li>
<li><strong>Connection reuse</strong>: Single persistent connection</li>
<li><strong>Reduced overhead</strong>: No HTTP headers per message</li>
<li><strong>True streaming</strong>: Bidirectional real-time communication</li>
<li><strong>Efficient multiplexing</strong>: Concurrent operations without connection pooling</li>
</ul>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">header<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class=""><td kind="field" title="Upgrade" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">Upgrade</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Value<!-- -->:</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;websocket&quot;</span> </div> <div><div html="&lt;p&gt;WebSocket upgrade header&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>WebSocket upgrade header</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="Connection" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">Connection</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div><div><span class="sc-gTgAvG gCMUGw"> <!-- -->Value<!-- -->:</span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">&quot;Upgrade&quot;</span> </div> <div><div html="&lt;p&gt;Connection upgrade header&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Connection upgrade header</p>
</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ gGsvUR" disabled=""><strong class="sc-fWPeRB mtsUp">101<!-- --> </strong><div html="&lt;p&gt;Switching Protocols - WebSocket connection established&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Switching Protocols - WebSocket connection established</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="get" class="sc-eFucnX iykXxP http-verb get">get</span><span class="sc-FyhMp kmRXcZ">/api/v1/socket</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/v1/socket</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab_R_jjmq_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_jjmq_0" tabindex="0" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_jjmq_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_jjmq_1" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_jjmq_0" aria-labelledby="tab_R_jjmq_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"error"</span>: <span class="token string">&quot;Unauthorized&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_jjmq_1" aria-labelledby="tab_R_jjmq_1"></div></div></div></div></div></div><div id="tag/Metrics" data-section-id="tag/Metrics" class="sc-eCsseJ bKZuAK"><div class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Metrics" aria-label="tag/Metrics"></a>Metrics</h2></div></div><div class="sc-hKgHXU jmTlOw"><div class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi redoc-markdown " html="&lt;p&gt;System metrics and monitoring&lt;/p&gt;
"><p>System metrics and monitoring</p>
</div></div></div><div id="tag/Metrics/operation/getMetrics" data-section-id="tag/Metrics/operation/getMetrics" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/getMetrics" id="operation/getMetrics" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Metrics/operation/getMetrics" aria-label="tag/Metrics/operation/getMetrics"></a>Metrics - Prometheus metrics endpoint<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Proxy to Prometheus metrics for system monitoring.&lt;/p&gt;
&lt;h2 id=&quot;metrics-overview&quot;&gt;Metrics Overview&lt;/h2&gt;
&lt;p&gt;Exposes system metrics via Prometheus format:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gateway metrics&lt;/strong&gt;: Request rates, latencies, errors&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow metrics&lt;/strong&gt;: Processing throughput, queue depths&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System metrics&lt;/strong&gt;: Resource usage, health status&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;prometheus-format&quot;&gt;Prometheus Format&lt;/h2&gt;
&lt;p&gt;Returns metrics in Prometheus text exposition format:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# HELP metric_name Description
# TYPE metric_name counter
metric_name&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;label&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;123.45&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;available-metrics&quot;&gt;Available Metrics&lt;/h2&gt;
&lt;p&gt;Common metrics include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Request count and rates&lt;/li&gt;
&lt;li&gt;Response times (histograms)&lt;/li&gt;
&lt;li&gt;Error rates&lt;/li&gt;
&lt;li&gt;Active connections&lt;/li&gt;
&lt;li&gt;Queue depths&lt;/li&gt;
&lt;li&gt;Processing latencies&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;integration&quot;&gt;Integration&lt;/h2&gt;
&lt;p&gt;Standard Prometheus scraping:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Configure Prometheus to scrape &lt;code&gt;/api/metrics&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Set appropriate scrape interval&lt;/li&gt;
&lt;li&gt;Use bearer token if authentication enabled&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;path-parameter&quot;&gt;Path Parameter&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;{path}&lt;/code&gt; parameter allows querying specific Prometheus endpoints
or metrics if the backend Prometheus supports it.&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Proxy to Prometheus metrics for system monitoring.</p>
<h2 id="metrics-overview">Metrics Overview</h2>
<p>Exposes system metrics via Prometheus format:</p>
<ul>
<li><strong>Gateway metrics</strong>: Request rates, latencies, errors</li>
<li><strong>Flow metrics</strong>: Processing throughput, queue depths</li>
<li><strong>System metrics</strong>: Resource usage, health status</li>
</ul>
<h2 id="prometheus-format">Prometheus Format</h2>
<p>Returns metrics in Prometheus text exposition format:</p>
<pre><code># HELP metric_name Description
# TYPE metric_name counter
metric_name<span class="token punctuation">{</span>label<span class="token operator">=</span><span class="token string">"value"</span><span class="token punctuation">}</span> <span class="token number">123.45</span>
</code></pre>
<h2 id="available-metrics">Available Metrics</h2>
<p>Common metrics include:</p>
<ul>
<li>Request count and rates</li>
<li>Response times (histograms)</li>
<li>Error rates</li>
<li>Active connections</li>
<li>Queue depths</li>
<li>Processing latencies</li>
</ul>
<h2 id="integration">Integration</h2>
<p>Standard Prometheus scraping:</p>
<ul>
<li>Configure Prometheus to scrape <code>/api/metrics</code></li>
<li>Set appropriate scrape interval</li>
<li>Use bearer token if authentication enabled</li>
</ul>
<h2 id="path-parameter">Path Parameter</h2>
<p>The <code>{path}</code> parameter allows querying specific Prometheus endpoints
or metrics if the backend Prometheus supports it.</p>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Prometheus metrics&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Prometheus metrics</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="get" class="sc-eFucnX iykXxP http-verb get">get</span><span class="sc-FyhMp kmRXcZ">/api/metrics</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/metrics</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab_R_175na_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_175na_0" tabindex="0" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_175na_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_175na_1" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_175na_0" aria-labelledby="tab_R_175na_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"error"</span>: <span class="token string">&quot;Unauthorized&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_175na_1" aria-labelledby="tab_R_175na_1"></div></div></div></div></div></div><div id="tag/Metrics/operation/getMetricsPath" data-section-id="tag/Metrics/operation/getMetricsPath" class="sc-eCsseJ hxxgNd"><div data-section-id="operation/getMetricsPath" id="operation/getMetricsPath" class="sc-iBPUmU cOCikg"><div class="sc-hKgHXU eQypqI"><h2 class="sc-pGbXd bwjsfx"><a class="sc-crrrsl itgZBm" href="#tag/Metrics/operation/getMetricsPath" aria-label="tag/Metrics/operation/getMetricsPath"></a>Metrics - Prometheus metrics with path<!-- --> </h2><div class="sc-iGcuFr iTRatv"><div html="&lt;p&gt;Proxy to Prometheus metrics with optional path parameter.&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz jtfGmi"><p>Proxy to Prometheus metrics with optional path parameter.</p>
</div></div><div class="sc-fvhGkJ bhICnb"><div class="sc-dacGni hnzXSU"><h5 class="sc-iqHZue sc-jQbHUc iFTCOQ htSlhJ">Authorizations:</h5><svg class="sc-dQoBM dHiXwH" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></div><div class="sc-jUEocL jnRUlI"><span class="sc-dtwqPB gXVZLC"><span class="sc-hOqsyU ewkFZw"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-iqHZue iFTCOQ">path<!-- --> Parameters</h5><table class="sc-hHfrpe juzVUC"><tbody><tr class="last "><td kind="field" title="path" class="sc-hBFaCF sc-fFubTW DPwQp hUqyua"><span class="sc-idOkdQ iNiPzl"></span><span class="property-name">path</span><div class="sc-gTgAvG sc-eJMOEj gCMUGw egFobb">required</div></td><td class="sc-bkAakD gNQdZ"><div><div><span class="sc-gTgAvG sc-laROWl gCMUGw dCeeDp"></span><span class="sc-gTgAvG sc-iNqMfM gCMUGw cxjEEA">string</span></div> <div><span class="sc-gTgAvG gCMUGw"> <!-- -->Example:<!-- --> </span> <span class="sc-gTgAvG sc-lcukLb gCMUGw jzGNYG">query</span></div><div><div html="&lt;p&gt;Path to specific metrics endpoint&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Path to specific metrics endpoint</p>
</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fHYzZk ihqrCS">Responses</h3><div><button class="sc-cbDJdZ ciHfuN"><svg class="sc-dQoBM idFXFs" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">200<!-- --> </strong><div html="&lt;p&gt;Prometheus metrics&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Prometheus metrics</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-cbDJdZ iagvZz"><svg class="sc-dQoBM djPqdM" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-fWPeRB mtsUp">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB sc-cittYi iNuSsz eBjiEo hynizp"><p>Error response</p>
</div></button></div></div></div><div class="sc-jSgsbC sc-gKscir kWQHAp jYdWFY"><div class="sc-fXozIE gnyOsi"><button class="sc-jXkukm eJFCKx"><span type="get" class="sc-eFucnX iykXxP http-verb get">get</span><span class="sc-FyhMp kmRXcZ">/api/metrics/{path}</span><svg class="sc-dQoBM dvMtUQ" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-fmlIYk AnL"><div class="sc-ljRaAR gjZMty"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iJuXkV sc-cBNeAB iNuSsz dyntKg"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jmhDzS eFxVeO"><span>http://localhost:8088</span>/api/metrics/{path}</div></div></div></div></div><div><h3 class="sc-kEjckD hgYAAF"> <!-- -->Response samples<!-- --> </h3><div class="sc-cxFMaL hqsuVf" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-error react-tabs__tab--selected" role="tab" id="tab_R_176na_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_176na_0" tabindex="0" data-rttab="true">401</li><li class="tab-error" role="tab" id="tab_R_176na_1" aria-selected="false" aria-disabled="false" aria-controls="panel_R_176na_1" data-rttab="true">500</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_176na_0" aria-labelledby="tab_R_176na_0"><div><div class="sc-cOahfn jyrVDw"><span class="sc-bBrNAk fLqWfi">Content type</span><div class="sc-dOSQqJ ilXydl">application/json</div></div><div class="sc-hTZjHc icbUjL"><div class="sc-cTkvqA fRRakq"><div class="sc-giIpqw ldPDIU"><button><div class="sc-jcVbNL hiQxbu">Copy</div></button></div><div tabindex="0" class="sc-iJuXkV iNuSsz sc-jNMdgd cCicSb"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"error"</span>: <span class="token string">&quot;Unauthorized&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="tabpanel" id="panel_R_176na_1" aria-labelledby="tab_R_176na_1"></div></div></div></div></div></div></div><div class="sc-elsZMO dQcVAt"></div></div></div>
<script>
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.1.0","info":{"title":"TrustGraph API Gateway","version":"2.4","description":"REST API for TrustGraph - an AI-powered knowledge graph and RAG system.\n\n## Overview\n\nThe API provides access to:\n- **Global Services**: IAM (user management, authentication)\n- **Workspace-Scoped Services**: Configuration, flow management, knowledge storage, library management\n- **Flow-Scoped Services**: AI services like RAG, text completion, embeddings (require running flow)\n- **Import/Export**: Bulk data operations for triples, embeddings, entity contexts\n- **WebSocket**: Multiplexed interface for all services\n\n## Authentication\n\nClients authenticate by passing an opaque bearer token in the\n`Authorization` header. The token is obtained via the IAM service\n(e.g. `tg-login` or `tg-create-api-key`).\n\n```\nAuthorization: Bearer <token>\n```\n\nThe gateway resolves the token to an authenticated identity and an\nassociated workspace. The token is an opaque string — clients must\nnot make assumptions about its internal structure.\n\n## Service Tiers\n\n### Global Services\nSystem-wide services with no workspace scoping:\n- `iam` - User management, authentication, API key lifecycle\n\n### Workspace-Scoped Services\nOperate within the workspace associated with the authenticated\ntoken. The workspace is resolved by the gateway — it is not\npassed as an explicit parameter.\n\nFixed endpoints accessible via `/api/v1/{kind}`:\n- `config` - Configuration management\n- `flow` - Flow lifecycle and blueprints\n- `librarian` - Document library management\n- `knowledge` - Knowledge graph core management\n- `collection-management` - Collection metadata\n\n### Flow-Scoped Services\nRequire a `flow` parameter identifying the processing flow to use.\nWorkspace context comes from the authenticated token.\n\nAccessed via `/api/v1/flow/{flow}/service/{kind}`:\n- AI services: agent, text-completion, prompt, RAG (document/graph)\n- Embeddings: embeddings, graph-embeddings, document-embeddings\n- Query: triples, rows, nlp-query, structured-query, sparql-query, row-embeddings\n- Data loading: text-load, document-load\n- Utilities: mcp-tool, structured-diag\n\n## Field Naming\n\nAll JSON fields use **kebab-case**: `flow-id`, `blueprint-name`, `doc-limit`, etc.\n\n## Error Responses\n\nAll endpoints may return errors in this format:\n```json\n{\n \"error\": {\n \"type\": \"gateway-error\",\n \"message\": \"Timeout\"\n }\n}\n```\n","contact":{"name":"TrustGraph Project","url":"https://trustgraph.ai"},"license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0.html"}},"servers":[{"url":"http://localhost:8088","description":"Local development server"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Config","description":"Configuration management (workspace-scoped)"},{"name":"Flow","description":"Flow lifecycle and blueprint management (workspace-scoped)"},{"name":"Librarian","description":"Document library management (workspace-scoped)"},{"name":"Knowledge","description":"Knowledge graph core management (workspace-scoped)"},{"name":"Collection","description":"Collection metadata management (workspace-scoped)"},{"name":"Flow Services","description":"AI and query services hosted within flow instances (flow-scoped)"},{"name":"Import/Export","description":"Bulk data import and export"},{"name":"WebSocket","description":"WebSocket interfaces"},{"name":"Metrics","description":"System metrics and monitoring"}],"paths":{"/api/v1/config":{"post":{"tags":["Config"],"summary":"Configuration service (workspace-scoped)","description":"Manage TrustGraph configuration including flows, prompts, token costs,\nparameter types, and more.\n\nThis is a **workspace-scoped** service. All operations apply to the\nworkspace associated with the authenticated bearer token.\n\n## Operations\n\n### config\nGet the complete system configuration including all flows, prompts, token costs, etc.\n\n### list\nList all configuration items of a specific type (e.g., all flows, all prompts).\n\n### get\nRetrieve specific configuration items by type and key.\n\n### put\nCreate or update configuration values.\n\n### delete\nDelete configuration items.\n\n## Configuration Types\n\n- `flow` - Flow instance definitions\n- `flow-blueprint` - Flow blueprint definitions (stored separately from flow instances)\n- `prompt` - Prompt templates\n- `token-cost` - Model token pricing\n- `parameter-type` - Parameter type definitions\n- `interface-description` - Interface descriptions\n- Custom types as needed\n\n## Important Distinction\n\nThe **config service** manages *stored configuration*.\nThe **flow service** (`/api/v1/flow`) manages *running flow instances*.\n\n- Use config service to store/retrieve flow definitions\n- Use flow service to start/stop/manage running flows\n","operationId":"configService","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigRequest"},"examples":{"getCompleteConfig":{"summary":"Get complete configuration","value":{"operation":"config"}},"listFlows":{"summary":"List all stored flow definitions","value":{"operation":"list","type":"flow"}},"listPrompts":{"summary":"List all prompts","value":{"operation":"list","type":"prompt"}},"getFlow":{"summary":"Get specific flow definition","value":{"operation":"get","keys":[{"type":"flow","key":"default"}]}},"putFlow":{"summary":"Create/update flow definition","value":{"operation":"put","values":[{"type":"flow","key":"my-flow","value":{"blueprint-name":"document-rag","description":"My RAG flow","parameters":{"model":"gpt-4"}}}]}},"putPrompt":{"summary":"Set system prompt","value":{"operation":"put","values":[{"type":"prompt","key":"system","value":"You are a helpful AI assistant specialized in data analysis"}]}},"putTokenCost":{"summary":"Set token costs for a model","value":{"operation":"put","values":[{"type":"token-cost","key":"gpt-4","value":{"prompt":0.03,"completion":0.06}}]}},"deleteFlow":{"summary":"Delete flow definition","value":{"operation":"delete","keys":[{"type":"flow","key":"my-flow"}]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"},"examples":{"completeConfig":{"summary":"Complete configuration","value":{"version":42,"config":{"flow":{"default":{"blueprint-name":"document-rag+graph-rag","description":"Default flow","interfaces":{"agent":{"request":"non-persistent://tg/request/agent:default","response":"non-persistent://tg/response/agent:default"}}}},"prompt":{"system":"You are a helpful AI assistant"},"token-cost":{"gpt-4":{"prompt":0.03,"completion":0.06}}}}},"listFlows":{"summary":"List of flow definition keys","value":{"directory":["default","production","my-flow"]}},"getFlow":{"summary":"Retrieved flow definition","value":{"values":[{"type":"flow","key":"default","value":{"blueprint-name":"document-rag+graph-rag","description":"Default flow"}}]}},"putSuccess":{"summary":"Put operation success","value":{"version":43}},"deleteSuccess":{"summary":"Delete operation success","value":{"version":44}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow":{"post":{"tags":["Flow"],"summary":"Flow lifecycle and blueprint management (workspace-scoped)","description":"Manage flow instances and blueprints.\n\nThis is a **workspace-scoped** service. All operations apply to the\nworkspace associated with the authenticated bearer token.\n\n## Important Distinction\n\nThe **flow service** manages *running flow instances*.\nThe **config service** (`/api/v1/config`) manages *stored configuration*.\n\n- Use flow service to start/stop/manage running flows\n- Use config service to store/retrieve flow definitions\n\n## Flow Instance Operations\n\n### start-flow\nStart a new flow instance from a blueprint. The blueprint must exist (either built-in or created via put-blueprint).\n\nParameters are resolved from:\n1. User-provided values (--param)\n2. Default values from parameter type definitions\n3. Controlled-by relationships\n\n### stop-flow\nStop a running flow instance. This terminates all processors and releases resources.\n\n### list-flows\nList all currently running flow instances.\n\n### get-flow\nGet details of a running flow including its configuration, parameters, and interface queue names.\n\n## Blueprint Operations\n\n### list-blueprints\nList all available flow blueprints (built-in and custom).\n\n### get-blueprint\nRetrieve a blueprint definition showing its structure, parameters, processors, and interfaces.\n\n### put-blueprint\nCreate or update a flow blueprint definition.\n\nBlueprints define:\n- **Class processors**: Shared across all instances of this blueprint\n- **Flow processors**: Unique to each flow instance\n- **Interfaces**: Entry points for external systems\n- **Parameters**: Configurable values for customization\n\n### delete-blueprint\nDelete a custom blueprint definition. Built-in blueprints cannot be deleted.\n","operationId":"flowService","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowRequest"},"examples":{"startFlow":{"summary":"Start a flow instance","value":{"operation":"start-flow","flow-id":"my-flow","blueprint-name":"document-rag","description":"My document processing flow","parameters":{"model":"gpt-4","temperature":"0.7"}}},"startFlowMinimal":{"summary":"Start flow with defaults","value":{"operation":"start-flow","flow-id":"my-flow","blueprint-name":"document-rag"}},"stopFlow":{"summary":"Stop a flow instance","value":{"operation":"stop-flow","flow-id":"my-flow"}},"listFlows":{"summary":"List running flows","value":{"operation":"list-flows"}},"getFlow":{"summary":"Get flow details","value":{"operation":"get-flow","flow-id":"my-flow"}},"listBlueprints":{"summary":"List available blueprints","value":{"operation":"list-blueprints"}},"getBlueprint":{"summary":"Get blueprint definition","value":{"operation":"get-blueprint","blueprint-name":"document-rag"}},"putBlueprint":{"summary":"Create/update blueprint","value":{"operation":"put-blueprint","blueprint-name":"my-custom-rag","blueprint-definition":{"description":"Custom RAG pipeline","parameters":{"model":{"type":"llm-model","description":"LLM model","order":1}},"class":{"text-completion:{class}":{"request":"non-persistent://tg/request/text-completion:{class}","response":"non-persistent://tg/response/text-completion:{class}"}},"flow":{"chunker:{id}":{"input":"persistent://tg/flow/chunk:{id}","output":"persistent://tg/flow/chunk-load:{id}"}},"interfaces":{"agent":{"request":"non-persistent://tg/request/agent:{id}","response":"non-persistent://tg/response/agent:{id}"}}}}},"deleteBlueprint":{"summary":"Delete blueprint","value":{"operation":"delete-blueprint","blueprint-name":"my-custom-rag"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowResponse"},"examples":{"startFlow":{"summary":"Flow started","value":{"flow-id":"my-flow"}},"listFlows":{"summary":"Running flows","value":{"flow-ids":["default","production","my-flow"]}},"getFlow":{"summary":"Flow details","value":{"flow":{"blueprint-name":"document-rag","description":"My document processing flow","parameters":{"model":"gpt-4","temperature":"0.7"},"interfaces":{"agent":{"request":"non-persistent://tg/request/agent:my-flow","response":"non-persistent://tg/response/agent:my-flow"},"text-load":"persistent://tg/flow/text-document-load:my-flow"}}}},"listBlueprints":{"summary":"Available blueprints","value":{"blueprint-names":["document-rag","graph-rag","document-rag+graph-rag","my-custom-rag"]}},"getBlueprint":{"summary":"Blueprint definition","value":{"blueprint-definition":{"description":"Standard RAG pipeline","parameters":{"model":{"type":"llm-model","order":1}},"class":{"text-completion:{class}":{"request":"non-persistent://tg/request/text-completion:{class}","response":"non-persistent://tg/response/text-completion:{class}"}},"interfaces":{"agent":{"request":"non-persistent://tg/request/agent:{id}","response":"non-persistent://tg/response/agent:{id}"}}}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/librarian":{"post":{"tags":["Librarian"],"summary":"Document library management (workspace-scoped)","description":"Manage document library: add, remove, list documents, and control\nprocessing.\n\nThis is a **workspace-scoped** service. All operations apply to the\nworkspace associated with the authenticated bearer token.\n\n## Document Library\n\nThe librarian service manages a persistent library of documents that can be:\n- Added with metadata for organization\n- Queried and filtered by criteria\n- Processed through flows on-demand or continuously\n- Tracked for processing status\n\n## Operations\n\n### add-document\nAdd a document to the library with metadata (URL, title, author, etc.).\nDocuments can be added by URL or with inline content.\n\n### remove-document\nRemove a document from the library by document ID or URL.\n\n### list-documents\nList all documents in the library, optionally filtered by criteria.\n\n### start-processing\nStart processing library documents through a flow. Documents are queued\nfor processing and handled asynchronously.\n\n### stop-processing\nStop ongoing library document processing.\n\n### list-processing\nList current processing tasks and their status.\n","operationId":"librarianService","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LibrarianRequest"},"examples":{"addDocumentByUrl":{"summary":"Add document by URL","value":{"operation":"add-document","flow":"my-flow","collection":"default","document-metadata":{"url":"https://example.com/document.pdf","title":"Example Document","author":"John Doe","metadata":{"department":"Engineering","category":"Technical"}}}},"addDocumentInline":{"summary":"Add document with inline content","value":{"operation":"add-document","flow":"my-flow","collection":"default","content":"This is the document content...","document-metadata":{"title":"Inline Document","author":"Jane Smith"}}},"removeDocument":{"summary":"Remove document","value":{"operation":"remove-document","flow":"my-flow","collection":"default","document-metadata":{"url":"https://example.com/document.pdf"}}},"listDocuments":{"summary":"List all documents","value":{"operation":"list-documents","flow":"my-flow","collection":"default"}},"listDocumentsFiltered":{"summary":"List documents with criteria","value":{"operation":"list-documents","flow":"my-flow","collection":"default","criteria":[{"key":"author","value":"John Doe","operator":"eq"},{"key":"department","value":"Engineering","operator":"eq"}]}},"startProcessing":{"summary":"Start processing library documents","value":{"operation":"start-processing","flow":"my-flow","collection":"default"}},"stopProcessing":{"summary":"Stop processing","value":{"operation":"stop-processing","flow":"my-flow","collection":"default"}},"listProcessing":{"summary":"List processing status","value":{"operation":"list-processing","flow":"my-flow","collection":"default"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LibrarianResponse"},"examples":{"listDocuments":{"summary":"List of documents","value":{"document-metadatas":[{"url":"https://example.com/doc1.pdf","title":"Document 1","author":"John Doe","metadata":{"department":"Engineering"}},{"url":"https://example.com/doc2.pdf","title":"Document 2","author":"Jane Smith","metadata":{"department":"Research"}}]}},"listProcessing":{"summary":"Processing status","value":{"processing-metadatas":[{"flow":"my-flow","collection":"default","status":"processing","timestamp":"2024-01-15T10:30:00Z"},{"flow":"my-flow","collection":"default","status":"completed","timestamp":"2024-01-15T10:25:00Z"}]}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/knowledge":{"post":{"tags":["Knowledge"],"summary":"Knowledge graph core management (workspace-scoped)","description":"Manage knowledge graph cores - persistent storage of triples and\nembeddings.\n\nThis is a **workspace-scoped** service. All operations apply to the\nworkspace associated with the authenticated bearer token.\n\n## Knowledge Cores\n\nKnowledge cores are the foundational storage units for:\n- **Triples**: RDF triples representing knowledge graph data\n- **Graph Embeddings**: Vector embeddings for entities\n- **Metadata**: Descriptive information about the knowledge\n\nEach core has an ID and collection for organization (within the workspace).\n\n## Operations\n\n### list-kg-cores\nList all knowledge cores in the workspace. Returns array of core IDs.\n\n### get-kg-core\nRetrieve a knowledge core by ID. Returns triples and/or graph embeddings.\nResponse is streamed - may receive multiple messages followed by EOS marker.\n\n### put-kg-core\nStore triples and/or graph embeddings. Creates new core or updates existing.\nCan store triples only, embeddings only, or both together.\n\n### delete-kg-core\nDelete a knowledge core by ID. Removes all associated data.\n\n### load-kg-core\nLoad a knowledge core into a running flow's collection.\nMakes the data available for querying within that flow instance.\n\n### unload-kg-core\nUnload a knowledge core from a flow's collection.\nRemoves data from flow instance but doesn't delete the core.\n\n## Streaming Responses\n\nThe `get-kg-core` operation streams data in chunks:\n1. Multiple messages with `triples` or `graph-embeddings`\n2. Final message with `eos: true` to signal completion\n","operationId":"knowledgeService","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeRequest"},"examples":{"listKnowledgeCores":{"summary":"List knowledge cores","value":{"operation":"list-kg-cores"}},"getKnowledgeCore":{"summary":"Get knowledge core","value":{"operation":"get-kg-core","id":"core-123"}},"putTriplesOnly":{"summary":"Store triples","value":{"operation":"put-kg-core","triples":{"metadata":{"id":"core-123","collection":"default","metadata":[{"s":{"v":"https://example.com/core-123","e":true},"p":{"v":"https://www.w3.org/1999/02/22-rdf-syntax-ns#type","e":true},"o":{"v":"https://trustgraph.ai/e/knowledge-core","e":true}}]},"triples":[{"s":{"v":"https://example.com/entity1","e":true},"p":{"v":"https://www.w3.org/2000/01/rdf-schema#label","e":true},"o":{"v":"Entity 1","e":false}},{"s":{"v":"https://example.com/entity1","e":true},"p":{"v":"https://example.com/relatedTo","e":true},"o":{"v":"https://example.com/entity2","e":true}}]}}},"putEmbeddingsOnly":{"summary":"Store embeddings","value":{"operation":"put-kg-core","graph-embeddings":{"metadata":{"id":"core-123","collection":"default","metadata":[]},"entities":[{"entity":{"v":"https://example.com/entity1","e":true},"vectors":[0.1,0.2,0.3,0.4,0.5]},{"entity":{"v":"https://example.com/entity2","e":true},"vectors":[0.6,0.7,0.8,0.9,1]}]}}},"putTriplesAndEmbeddings":{"summary":"Store triples and embeddings together","value":{"operation":"put-kg-core","triples":{"metadata":{"id":"core-456","collection":"research","metadata":[]},"triples":[{"s":{"v":"https://example.com/doc1","e":true},"p":{"v":"http://purl.org/dc/terms/title","e":true},"o":{"v":"Research Paper","e":false}}]},"graph-embeddings":{"metadata":{"id":"core-456","collection":"research","metadata":[]},"entities":[{"entity":{"v":"https://example.com/doc1","e":true},"vectors":[0.11,0.22,0.33]}]}}},"deleteKnowledgeCore":{"summary":"Delete knowledge core","value":{"operation":"delete-kg-core","id":"core-123"}},"loadKnowledgeCore":{"summary":"Load core into flow","value":{"operation":"load-kg-core","id":"core-123","flow":"my-flow","collection":"default"}},"unloadKnowledgeCore":{"summary":"Unload core from flow","value":{"operation":"unload-kg-core","id":"core-123"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeResponse"},"examples":{"listKnowledgeCores":{"summary":"List of knowledge cores","value":{"ids":["core-123","core-456","core-789"]}},"getKnowledgeCoreTriples":{"summary":"Knowledge core triples (streaming)","value":{"triples":{"metadata":{"id":"core-123","collection":"default","metadata":[{"s":{"v":"https://example.com/core-123","e":true},"p":{"v":"https://www.w3.org/1999/02/22-rdf-syntax-ns#type","e":true},"o":{"v":"https://trustgraph.ai/e/knowledge-core","e":true}}]},"triples":[{"s":{"v":"https://example.com/entity1","e":true},"p":{"v":"https://www.w3.org/2000/01/rdf-schema#label","e":true},"o":{"v":"Entity 1","e":false}}]}}},"getKnowledgeCoreEmbeddings":{"summary":"Knowledge core embeddings (streaming)","value":{"graph-embeddings":{"metadata":{"id":"core-123","collection":"default","metadata":[]},"entities":[{"entity":{"v":"https://example.com/entity1","e":true},"vectors":[0.1,0.2,0.3,0.4,0.5]}]}}},"endOfStream":{"summary":"End of stream marker","value":{"eos":true}},"deleteSuccess":{"summary":"Delete successful (empty response)","value":{}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/collection-management":{"post":{"tags":["Collection"],"summary":"Collection metadata management (workspace-scoped)","description":"Manage collection metadata for organizing documents and knowledge.\n\nThis is a **workspace-scoped** service. All operations apply to the\nworkspace associated with the authenticated bearer token.\n\n## Collections\n\nCollections are organizational units for grouping:\n- Documents in the librarian\n- Knowledge cores\n- Workspace data\n\nEach collection has:\n- **collection**: Unique collection ID (within the workspace)\n- **name**: Human-readable display name\n- **description**: Purpose and contents\n- **tags**: Labels for filtering and organization\n\n## Operations\n\n### list-collections\nList all collections in the workspace. Optionally filter by tags and limit results.\nReturns array of collection metadata.\n\n### update-collection\nCreate or update collection metadata. If collection doesn't exist, it's created.\nIf it exists, metadata is updated. Allows setting name, description, and tags.\n\n### delete-collection\nDelete a collection by collection ID. This removes the metadata but\ntypically does not delete the associated data (documents, knowledge cores).\n","operationId":"collectionManagementService","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRequest"},"examples":{"listCollections":{"summary":"List all collections in workspace","value":{"operation":"list-collections"}},"listCollectionsFiltered":{"summary":"List collections filtered by tags","value":{"operation":"list-collections","tag-filter":["research","AI"],"limit":50}},"updateCollection":{"summary":"Create/update collection","value":{"operation":"update-collection","collection":"research","name":"Research Papers","description":"Academic research papers on AI and ML","tags":["research","AI","academic"],"timestamp":"2024-01-15T10:30:00Z"}},"deleteCollection":{"summary":"Delete collection","value":{"operation":"delete-collection","collection":"research"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionResponse"},"examples":{"listCollections":{"summary":"List of collections","value":{"timestamp":"2024-01-15T10:30:00Z","collections":[{"collection":"research","name":"Research Papers","description":"Academic research papers on AI and ML","tags":["research","AI","academic"]},{"collection":"personal","name":"Personal Documents","description":"Personal notes and documents","tags":["personal"]}]}},"updateSuccess":{"summary":"Update successful","value":{"timestamp":"2024-01-15T10:30:00Z"}},"deleteSuccess":{"summary":"Delete successful","value":{"timestamp":"2024-01-15T10:30:00Z"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/agent":{"post":{"tags":["Flow Services"],"summary":"Agent service - conversational AI with reasoning","description":"AI agent that can understand questions, reason about them, and take actions.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Agent Overview\n\nThe agent service provides a conversational AI that:\n- Understands natural language questions\n- Reasons about problems using thoughts\n- Takes actions to gather information\n- Provides coherent answers\n\n## Request Format\n\nSend a question with optional:\n- **state**: Continue from previous conversation\n- **history**: Previous agent steps for context\n- **group**: Collaborative agent identifiers\n- **streaming**: Enable streaming responses\n\n## Response Modes\n\n### Streaming Mode (streaming: true)\nResponses arrive as chunks with `chunk-type`:\n- `thought`: Agent's reasoning process\n- `action`: Action being taken\n- `observation`: Result from action\n- `answer`: Final response to user\n- `explain`: Provenance event with inline triples (`explain_triples`)\n- `error`: Error occurred\n\nEach chunk may have multiple messages. Check flags:\n- `end-of-message`: Current chunk type complete\n- `end-of-dialog`: Entire conversation complete\n\n### Legacy Mode (streaming: false)\nSingle response with:\n- `answer`: Complete answer\n- `thought`: Reasoning (if any)\n- `observation`: Observations (if any)\n\n## Multi-turn Conversations\n\nInclude `history` array with previous steps to maintain context.\nEach step has: thought, action, arguments, observation.\n","operationId":"agentService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRequest"},"examples":{"simpleQuestion":{"summary":"Simple question","value":{"question":"What is the capital of France?"}},"streamingQuestion":{"summary":"Question with streaming enabled","value":{"question":"Explain quantum computing","streaming":true}},"conversationWithHistory":{"summary":"Multi-turn conversation","value":{"question":"And what about its population?","history":[{"thought":"User is asking about the capital of France","action":"search","arguments":{"query":"capital of France"},"observation":"Paris is the capital of France"}]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"},"examples":{"streamingThought":{"summary":"Streaming thought chunk","value":{"chunk-type":"thought","content":"I need to search for information about quantum computing","end-of-message":false,"end-of-dialog":false}},"streamingAnswer":{"summary":"Streaming answer chunk","value":{"chunk-type":"answer","content":"Quantum computing uses quantum mechanics principles...","end-of-message":false,"end-of-dialog":false}},"streamingComplete":{"summary":"Streaming complete marker","value":{"chunk-type":"answer","content":"","end-of-message":true,"end-of-dialog":true}},"explainEvent":{"summary":"Explain event with inline provenance triples","value":{"chunk-type":"explain","content":"","explain_id":"urn:trustgraph:agent:abc123","explain_graph":"urn:graph:retrieval","explain_triples":[{"s":{"t":"i","i":"urn:trustgraph:agent:abc123"},"p":{"t":"i","i":"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"},"o":{"t":"i","i":"https://trustgraph.ai/ns/AgentSession"}},{"s":{"t":"i","i":"urn:trustgraph:agent:abc123"},"p":{"t":"i","i":"https://trustgraph.ai/ns/query"},"o":{"t":"l","v":"Explain quantum computing"}}],"end-of-message":true,"end-of-dialog":false}},"legacyResponse":{"summary":"Legacy non-streaming response","value":{"answer":"Paris is the capital of France.","thought":"User is asking about the capital of France","observation":"","end-of-message":false,"end-of-dialog":false}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/document-rag":{"post":{"tags":["Flow Services"],"summary":"Document RAG - retrieve and generate from documents","description":"Retrieval-Augmented Generation over document embeddings.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Document RAG Overview\n\nDocument RAG combines:\n1. **Retrieval**: Search document embeddings using semantic similarity\n2. **Generation**: Use LLM to synthesize answer from retrieved documents\n\nThis provides grounded answers based on your document corpus.\n\n## Query Process\n\n1. Convert query to embedding\n2. Search document embeddings for most similar chunks\n3. Retrieve top N document chunks (configurable via doc-limit)\n4. Pass query + retrieved context to LLM\n5. Generate answer grounded in documents\n\n## Streaming\n\nEnable `streaming: true` to receive the answer as it's generated:\n- Multiple `chunk` messages with `response` content\n- `explain` messages with inline provenance triples (`explain_triples`)\n- Final message with `end-of-stream: true`\n- Session ends with `end_of_session: true`\n\nExplain events carry `explain_id`, `explain_graph`, and `explain_triples`\ninline in the stream, so no follow-up knowledge graph query is needed.\n\nWithout streaming, returns complete answer in single response.\n\n## Parameters\n\n- **doc-limit**: Controls retrieval depth (1-100, default 20)\n - Higher = more context but slower\n - Lower = faster but may miss relevant info\n- **collection**: Target specific document collection\n","operationId":"documentRagService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentRagRequest"},"examples":{"basicQuery":{"summary":"Basic document query","value":{"query":"What are the key findings in the research papers?","collection":"research"}},"streamingQuery":{"summary":"Streaming query","value":{"query":"Summarize the main conclusions","collection":"research","doc-limit":15,"streaming":true}},"limitedRetrieval":{"summary":"Query with limited retrieval","value":{"query":"What is quantum entanglement?","doc-limit":5}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentRagResponse"},"examples":{"completeResponse":{"summary":"Complete non-streaming response","value":{"response":"The research papers present three key findings:\n1. Quantum entanglement exhibits non-local correlations\n2. Bell's inequality is violated in experimental tests\n3. Applications in quantum cryptography are promising\n","end-of-stream":false}},"streamingChunk":{"summary":"Streaming response chunk","value":{"response":"The research papers present three","end-of-stream":false}},"explainEvent":{"summary":"Explain event with inline provenance triples","value":{"message_type":"explain","explain_id":"urn:trustgraph:question:abc123","explain_graph":"urn:graph:retrieval","explain_triples":[{"s":{"t":"i","i":"urn:trustgraph:question:abc123"},"p":{"t":"i","i":"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"},"o":{"t":"i","i":"https://trustgraph.ai/ns/DocumentRagQuestion"}},{"s":{"t":"i","i":"urn:trustgraph:question:abc123"},"p":{"t":"i","i":"https://trustgraph.ai/ns/query"},"o":{"t":"l","v":"What are the key findings in the research papers?"}}],"end-of-stream":false,"end_of_session":false}},"streamingComplete":{"summary":"Streaming complete marker","value":{"response":"","end-of-stream":true}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/graph-rag":{"post":{"tags":["Flow Services"],"summary":"Graph RAG - retrieve and generate from knowledge graph","description":"Retrieval-Augmented Generation over knowledge graph.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Graph RAG Overview\n\nGraph RAG combines:\n1. **Retrieval**: Find relevant entities and subgraph from knowledge graph\n2. **Generation**: Use LLM to reason over graph structure and generate answer\n\nThis provides graph-aware answers that leverage relationships and structure.\n\n## Query Process\n\n1. Identify relevant entities from query (using embeddings)\n2. Retrieve connected subgraph around entities\n3. Optionally traverse paths up to max-path-length hops\n4. Limit subgraph size to stay within context window\n5. Pass query + graph structure to LLM\n6. Generate answer incorporating graph relationships\n\n## Streaming\n\nEnable `streaming: true` to receive the answer as it's generated:\n- Multiple `chunk` messages with `response` content\n- `explain` messages with inline provenance triples (`explain_triples`)\n- Final message with `end-of-stream: true`\n- Session ends with `end_of_session: true`\n\nExplain events carry `explain_id`, `explain_graph`, and `explain_triples`\ninline in the stream, so no follow-up knowledge graph query is needed.\n\nWithout streaming, returns complete answer in single response.\n\n## Parameters\n\nControl retrieval scope with multiple knobs:\n- **entity-limit**: How many starting entities to find (1-200, default 50)\n- **triple-limit**: Triples per entity (1-100, default 30)\n- **max-subgraph-size**: Total subgraph cap (10-5000, default 1000)\n- **max-path-length**: Graph traversal depth (1-5, default 2)\n\nHigher limits = more context but:\n- Slower retrieval\n- Larger context for LLM\n- May hit context window limits\n\n## Use Cases\n\nBest for queries requiring:\n- Relationship understanding (\"How are X and Y connected?\")\n- Multi-hop reasoning (\"What's the path from A to B?\")\n- Structural analysis (\"What are the main entities related to X?\")\n","operationId":"graphRagService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphRagRequest"},"examples":{"basicQuery":{"summary":"Basic graph query","value":{"query":"What connections exist between quantum physics and computer science?","collection":"research"}},"streamingQuery":{"summary":"Streaming query with custom limits","value":{"query":"Trace the historical development of AI from Turing to modern LLMs","collection":"research","entity-limit":40,"triple-limit":25,"max-subgraph-size":800,"max-path-length":3,"streaming":true}},"focusedQuery":{"summary":"Focused query with tight limits","value":{"query":"What is the immediate relationship between entity A and B?","entity-limit":10,"triple-limit":15,"max-subgraph-size":200,"max-path-length":1}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphRagResponse"},"examples":{"completeResponse":{"summary":"Complete non-streaming response","value":{"response":"Quantum physics and computer science intersect primarily through quantum computing.\nThe knowledge graph shows connections through:\n- Quantum algorithms (Shor's algorithm, Grover's algorithm)\n- Quantum information theory\n- Computational complexity theory\n","end-of-stream":false}},"streamingChunk":{"summary":"Streaming response chunk","value":{"response":"Quantum physics and computer science intersect","end-of-stream":false}},"explainEvent":{"summary":"Explain event with inline provenance triples","value":{"message_type":"explain","explain_id":"urn:trustgraph:question:abc123","explain_graph":"urn:graph:retrieval","explain_triples":[{"s":{"t":"i","i":"urn:trustgraph:question:abc123"},"p":{"t":"i","i":"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"},"o":{"t":"i","i":"https://trustgraph.ai/ns/GraphRagQuestion"}},{"s":{"t":"i","i":"urn:trustgraph:question:abc123"},"p":{"t":"i","i":"https://trustgraph.ai/ns/query"},"o":{"t":"l","v":"What connections exist between quantum physics and computer science?"}}],"end_of_stream":false,"end_of_session":false}},"streamingComplete":{"summary":"Streaming complete marker","value":{"response":"","end-of-stream":true}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/text-completion":{"post":{"tags":["Flow Services"],"summary":"Text completion - direct LLM generation","description":"Direct text completion using LLM without retrieval augmentation.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Text Completion Overview\n\nPure LLM generation for:\n- General knowledge questions\n- Creative writing\n- Code generation\n- Analysis and reasoning\n- Any task not requiring specific document/graph context\n\n## System vs Prompt\n\n- **system**: Sets LLM behavior, role, constraints\n - \"You are a helpful assistant\"\n - \"You are an expert Python developer\"\n - \"Respond in JSON format\"\n- **prompt**: The actual user request/question\n\n## Streaming\n\nEnable `streaming: true` to receive tokens as generated:\n- Multiple messages with partial `response`\n- Final message with `end-of-stream: true`\n\nWithout streaming, returns complete response in single message.\n\n## Token Counting\n\nResponse includes token usage:\n- `in-token`: Input tokens (system + prompt)\n- `out-token`: Generated tokens\n- Useful for cost tracking and optimization\n\n## When to Use\n\nUse text-completion when:\n- No specific context needed (general knowledge)\n- System prompt provides sufficient context\n- Want direct control over prompting\n\nUse document-rag/graph-rag when:\n- Need to ground response in specific documents\n- Want to leverage knowledge graph relationships\n- Require citations or provenance\n","operationId":"textCompletionService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextCompletionRequest"},"examples":{"basicCompletion":{"summary":"Basic text completion","value":{"system":"You are a helpful assistant that provides concise answers.","prompt":"Explain the concept of recursion in programming."}},"codeGeneration":{"summary":"Code generation with streaming","value":{"system":"You are an expert Python developer. Provide clean, well-documented code.","prompt":"Write a function to calculate the Fibonacci sequence using memoization.","streaming":true}},"jsonResponse":{"summary":"Structured output request","value":{"system":"You are a JSON API. Respond only with valid JSON, no other text.","prompt":"Extract key information from this text and return as JSON with fields:\ntitle, author, year, summary.\n\nText: \"The Theory of Everything by Stephen Hawking (2006) explores...\"\n"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextCompletionResponse"},"examples":{"completeResponse":{"summary":"Complete non-streaming response","value":{"response":"Recursion is a programming technique where a function calls itself\nto solve a problem by breaking it down into smaller, similar subproblems.\nEach recursive call works on a simpler version until reaching a base case.\n","in-token":45,"out-token":128,"model":"gpt-4","end-of-stream":false}},"streamingChunk":{"summary":"Streaming response chunk","value":{"response":"Recursion is a programming technique","end-of-stream":false}},"streamingComplete":{"summary":"Streaming complete with tokens","value":{"response":"","in-token":45,"out-token":128,"model":"gpt-4","end-of-stream":true}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/prompt":{"post":{"tags":["Flow Services"],"summary":"Prompt service - template-based generation","description":"Execute stored prompt templates with variable substitution.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Prompt Service Overview\n\nThe prompt service enables:\n- Reusable prompt templates stored in configuration\n- Variable substitution for dynamic prompts\n- Consistent prompt engineering across requests\n- Text or structured object outputs\n\n## Template System\n\nPrompts are stored via config service (`/api/v1/config`) with:\n- **id**: Unique prompt identifier\n- **template**: Prompt text with `{variable}` placeholders\n- **system**: Optional system prompt\n- **output_format**: \"text\" or \"object\"\n\nExample template:\n```\nSummarize the following document in {max_length} words:\n\n{document}\n```\n\n## Variable Substitution\n\nTwo ways to pass variables:\n\n1. **terms** (explicit JSON strings):\n ```json\n {\n \"terms\": {\n \"document\": \"\\\"Text here...\\\"\",\n \"max_length\": \"\\\"200\\\"\"\n }\n }\n ```\n\n2. **variables** (auto-converted):\n ```json\n {\n \"variables\": {\n \"document\": \"Text here...\",\n \"max_length\": 200\n }\n }\n ```\n\n## Output Types\n\n- **text**: Plain text response in `text` field\n- **object**: Structured JSON in `object` field (as string)\n\n## Streaming\n\nEnable `streaming: true` to receive response incrementally.\n\n## Use Cases\n\n- Document summarization\n- Entity extraction\n- Classification tasks\n- Data transformation\n- Any repeatable LLM task with consistent prompting\n","operationId":"promptService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptRequest"},"examples":{"withTerms":{"summary":"Using terms (JSON strings)","value":{"id":"summarize-document","terms":{"document":"\"This document discusses quantum computing, covering qubits, superposition, and entanglement. Applications include cryptography and optimization.\"","max_length":"\"50\""}}},"withVariables":{"summary":"Using variables (auto-converted)","value":{"id":"extract-entities","variables":{"text":"A paper by Einstein on relativity published in 1905.","entity_types":["person","year","topic"]}}},"streaming":{"summary":"Streaming response","value":{"id":"generate-report","variables":{"data":{"revenue":1000000,"growth":15},"format":"executive summary"},"streaming":true}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptResponse"},"examples":{"textResponse":{"summary":"Text output","value":{"text":"This document provides an overview of quantum computing fundamentals and cryptographic applications.","end-of-stream":false}},"objectResponse":{"summary":"Structured output","value":{"object":"{\"entities\": [{\"type\": \"person\", \"value\": \"Einstein\"}, {\"type\": \"year\", \"value\": \"1905\"}, {\"type\": \"topic\", \"value\": \"relativity\"}]}","end-of-stream":false}},"streamingChunk":{"summary":"Streaming chunk","value":{"text":"This document provides an overview","end-of-stream":false}},"streamingComplete":{"summary":"Streaming complete","value":{"text":"","end-of-stream":true}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/embeddings":{"post":{"tags":["Flow Services"],"summary":"Embeddings - text to vector conversion","description":"Convert text to embedding vectors for semantic similarity search.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Embeddings Overview\n\nEmbeddings transform text into dense vector representations that:\n- Capture semantic meaning\n- Enable similarity comparisons via cosine distance\n- Support semantic search and retrieval\n- Power RAG systems\n\n## Use Cases\n\n- **Document indexing**: Convert documents to vectors for storage\n- **Query encoding**: Convert search queries for similarity matching\n- **Semantic similarity**: Find related texts via vector distance\n- **Clustering**: Group similar content\n- **Classification**: Use as features for ML models\n\n## Vector Dimensions\n\nDimension count depends on embedding model:\n- text-embedding-ada-002: 1536 dimensions\n- text-embedding-3-small: 1536 dimensions\n- text-embedding-3-large: 3072 dimensions\n- Custom models: Varies\n\n## Single Request\n\nUnlike batch embedding APIs, this endpoint processes one text at a time.\nFor bulk operations, use document-load or text-load services.\n","operationId":"embeddingsService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingsRequest"},"examples":{"shortText":{"summary":"Short text embedding","value":{"text":"Machine learning"}},"sentence":{"summary":"Sentence embedding","value":{"text":"Quantum computing uses quantum mechanics principles for computation."}},"paragraph":{"summary":"Paragraph embedding","value":{"text":"Neural networks are computing systems inspired by biological neural networks.\nThey consist of interconnected nodes (neurons) organized in layers.\nThrough training, they learn to recognize patterns and make predictions.\n"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingsResponse"},"examples":{"embeddingVector":{"summary":"Embedding vector","value":{"vectors":[0.023,-0.142,0.089,0.234,-0.067,0.156,0.201,-0.178,0.045,0.312]}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/mcp-tool":{"post":{"tags":["Flow Services"],"summary":"MCP Tool - execute Model Context Protocol tools","description":"Execute MCP (Model Context Protocol) tools for agent capabilities.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## MCP Tool Overview\n\nMCP tools provide agent capabilities through standardized protocol:\n- **Search tools**: Web search, document search\n- **Data tools**: Database queries, API calls\n- **Action tools**: File operations, system commands\n- **Integration tools**: Third-party service connectors\n\nTools extend agent capabilities beyond pure LLM generation.\n\n## Tool Execution\n\nTools are:\n1. Registered via MCP protocol\n2. Discovered by agent\n3. Called with structured parameters\n4. Return text or structured results\n\n## Request Format\n\n- **name**: Tool identifier (e.g., \"search\", \"calculator\", \"weather\")\n- **parameters**: Tool-specific arguments as JSON object\n\n## Response Format\n\nTools can return:\n- **text**: Plain text result (simple tools)\n- **object**: Structured JSON result (complex tools)\n\n## Tool Registration\n\nTools are registered via MCP server configuration:\n- Define tool schema (name, parameters, description)\n- Implement tool handler\n- Register with MCP server\n- Agent discovers and uses tool\n\n## Use Cases\n\n- **Web search**: Find external information\n- **Calculator**: Perform calculations\n- **Database query**: Retrieve structured data\n- **API integration**: Call external services\n- **File operations**: Read/write files\n- **Code execution**: Run scripts\n","operationId":"mcpToolService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpToolRequest"},"examples":{"searchTool":{"summary":"Search tool execution","value":{"name":"search","parameters":{"query":"quantum computing","limit":10}}},"calculatorTool":{"summary":"Calculator tool","value":{"name":"calculator","parameters":{"expression":"(42 * 7) + 15"}}},"weatherTool":{"summary":"Weather tool","value":{"name":"weather","parameters":{"location":"San Francisco","units":"celsius"}}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpToolResponse"},"examples":{"textResponse":{"summary":"Text result","value":{"text":"The result is 309"}},"objectResponse":{"summary":"Structured result","value":{"object":{"results":[{"title":"Introduction to Quantum Computing","url":"https://example.com/qc-intro","snippet":"Quantum computing uses quantum mechanics..."},{"title":"Quantum Algorithms","url":"https://example.com/qc-algos","snippet":"Key algorithms include Shor's and Grover's..."}],"total":10}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/triples":{"post":{"tags":["Flow Services"],"summary":"Triples query - pattern-based graph queries","description":"Query knowledge graph using subject-predicate-object patterns.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Triples Query Overview\n\nQuery RDF triples with flexible pattern matching:\n- Specify subject, predicate, and/or object\n- Any combination of filters (all optional)\n- Returns matching triples up to limit\n\n## Pattern Matching\n\nPattern syntax supports:\n- **All triples**: Omit all filters (returns everything up to limit)\n- **Subject match**: Specify `s` only (all triples about that subject)\n- **Predicate match**: Specify `p` only (all uses of that property)\n- **Object match**: Specify `o` only (all triples with that value)\n- **Combinations**: Any combination of s/p/o\n\n## RDF Value Format\n\nEach component (s/p/o) uses RdfValue format:\n- **Entity/URI**: `{\"v\": \"https://example.com/entity\", \"e\": true}`\n- **Literal**: `{\"v\": \"Some text\", \"e\": false}`\n\n## Query Examples\n\nFind all properties of an entity:\n```json\n{\"s\": {\"v\": \"https://example.com/person/alice\", \"e\": true}}\n```\n\nFind all instances of a type:\n```json\n{\n \"p\": {\"v\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\", \"e\": true},\n \"o\": {\"v\": \"https://example.com/type/Person\", \"e\": true}\n}\n```\n\nFind specific relationship:\n```json\n{\n \"s\": {\"v\": \"https://example.com/person/alice\", \"e\": true},\n \"p\": {\"v\": \"https://example.com/knows\", \"e\": true}\n}\n```\n\n## Performance\n\n- Default limit: 10,000 triples\n- Max limit: 100,000 triples\n- More specific patterns = faster queries\n- Consider limit for large result sets\n","operationId":"triplesQueryService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriplesQueryRequest"},"examples":{"allTriplesAboutEntity":{"summary":"All triples about an entity","value":{"s":{"v":"https://example.com/person/alice","e":true},"collection":"research","limit":100}},"allInstancesOfType":{"summary":"Find all instances of a type","value":{"p":{"v":"http://www.w3.org/1999/02/22-rdf-syntax-ns#type","e":true},"o":{"v":"https://example.com/type/Person","e":true},"limit":50}},"specificRelationship":{"summary":"Find specific relationships","value":{"p":{"v":"https://example.com/knows","e":true},"limit":200}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriplesQueryResponse"},"examples":{"matchingTriples":{"summary":"Matching triples","value":{"response":[{"s":{"v":"https://example.com/person/alice","e":true},"p":{"v":"https://www.w3.org/1999/02/22-rdf-syntax-ns#type","e":true},"o":{"v":"https://example.com/type/Person","e":true}},{"s":{"v":"https://example.com/person/alice","e":true},"p":{"v":"https://www.w3.org/2000/01/rdf-schema#label","e":true},"o":{"v":"Alice","e":false}},{"s":{"v":"https://example.com/person/alice","e":true},"p":{"v":"https://example.com/knows","e":true},"o":{"v":"https://example.com/person/bob","e":true}}]}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/rows":{"post":{"tags":["Flow Services"],"summary":"Rows query - GraphQL over structured data","description":"Query structured data using GraphQL for row-oriented data access.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Rows Query Overview\n\nGraphQL interface to structured data:\n- **Schema-driven**: Predefined types and relationships\n- **Flexible queries**: Request exactly what you need\n- **Nested data**: Traverse relationships in single query\n- **Type-safe**: Strong typing with introspection\n\nAbstracts structured rows into familiar object model.\n\n## GraphQL Benefits\n\nCompared to triples query:\n- **Developer-friendly**: Objects instead of triples\n- **Efficient**: Get related data in one query\n- **Typed**: Schema defines available fields\n- **Discoverable**: Introspection for tooling\n\n## Query Structure\n\nStandard GraphQL query format:\n```graphql\nquery OperationName($var: Type!) {\n fieldName(arg: $var) {\n subField1\n subField2\n nestedObject {\n nestedField\n }\n }\n}\n```\n\n## Variables\n\nPass variables for parameterized queries:\n```json\n{\n \"query\": \"query GetPerson($id: ID!) { person(id: $id) { name } }\",\n \"variables\": {\"id\": \"https://example.com/person/alice\"}\n}\n```\n\n## Error Handling\n\nGraphQL distinguishes:\n- **Field errors**: Invalid query, missing fields (in `errors` array)\n- **System errors**: Connection issues, timeouts (in `error` object)\n\nPartial data may be returned with field errors.\n\n## Schema Definition\n\nSchema defines available types via config service.\nUse introspection query to discover schema.\n","operationId":"rowsQueryService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowsQueryRequest"},"examples":{"simpleQuery":{"summary":"Simple query","value":{"query":"{\n person(id: \"https://example.com/person/alice\") {\n name\n email\n }\n}\n","collection":"research"}},"queryWithVariables":{"summary":"Query with variables","value":{"query":"query GetPerson($id: ID!) {\n person(id: $id) {\n name\n email\n knows {\n name\n }\n }\n}\n","variables":{"id":"https://example.com/person/alice"},"operation-name":"GetPerson"}},"nestedQuery":{"summary":"Nested relationship query","value":{"query":"{\n person(id: \"https://example.com/person/alice\") {\n name\n knows {\n name\n worksFor {\n name\n location\n }\n }\n }\n}\n"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowsQueryResponse"},"examples":{"successfulQuery":{"summary":"Successful query","value":{"data":{"person":{"name":"Alice","email":"alice@example.com","knows":[{"name":"Bob"},{"name":"Carol"}]}},"extensions":{"execution_time_ms":"42"}}},"queryWithFieldErrors":{"summary":"Query with field errors","value":{"data":{"person":{"name":"Alice","email":null}},"errors":[{"message":"Cannot query field 'nonexistent' on type 'Person'","path":["person","nonexistent"]}]}},"systemError":{"summary":"System error","value":{"data":null,"error":{"type":"TIMEOUT_ERROR","message":"Query execution timeout after 30s"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/nlp-query":{"post":{"tags":["Flow Services"],"summary":"NLP Query - natural language to structured query","description":"Convert natural language questions to structured GraphQL queries.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## NLP Query Overview\n\nTransforms user questions into executable GraphQL:\n- **Natural input**: Ask questions in plain English\n- **Structured output**: Get GraphQL query + variables\n- **Schema-aware**: Uses knowledge graph schema\n- **Confidence scoring**: Know how well question was understood\n\nEnables non-technical users to query knowledge graph.\n\n## Process\n\n1. Parse natural language question\n2. Identify entities and relationships\n3. Map to GraphQL schema types\n4. Generate query with variables\n5. Return query + confidence score\n\n## Using Results\n\nGenerated query can be:\n- Executed via objects query service\n- Inspected and modified if needed\n- Cached for similar questions\n\nExample workflow:\n```\n1. User asks: \"Who does Alice know?\"\n2. NLP Query generates GraphQL\n3. Execute via /api/v1/flow/{flow}/service/rows\n4. Return results to user\n```\n\n## Schema Detection\n\nResponse includes `detected-schemas` array showing:\n- Which types were identified\n- What entities were matched\n- Schema coverage of question\n\nHelps understand query scope.\n\n## Confidence Scores\n\n- **0.9-1.0**: High confidence, likely correct\n- **0.7-0.9**: Good confidence, probably correct\n- **0.5-0.7**: Medium confidence, may need review\n- **< 0.5**: Low confidence, likely incorrect\n\nLow scores suggest:\n- Ambiguous question\n- Missing schema coverage\n- Complex query structure\n","operationId":"nlpQueryService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NlpQueryRequest"},"examples":{"simpleQuestion":{"summary":"Simple relationship question","value":{"question":"Who does Alice know?","max-results":50}},"complexQuestion":{"summary":"Multi-hop relationship","value":{"question":"What companies employ people that Alice knows?","max-results":100}},"filterQuestion":{"summary":"Question with filters","value":{"question":"Which engineers does Bob collaborate with?"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NlpQueryResponse"},"examples":{"successfulQuery":{"summary":"Successful query generation","value":{"graphql-query":"query GetConnections($person: ID!) {\n person(id: $person) {\n knows { name email }\n }\n}\n","variables":{"person":"https://example.com/person/alice"},"detected-schemas":["Person"],"confidence":0.92}},"complexQuery":{"summary":"Complex multi-hop query","value":{"graphql-query":"query GetCompanies($person: ID!) {\n person(id: $person) {\n knows {\n worksFor {\n name\n industry\n }\n }\n }\n}\n","variables":{"person":"https://example.com/person/alice"},"detected-schemas":["Person","Organization"],"confidence":0.85}},"lowConfidence":{"summary":"Low confidence result","value":{"graphql-query":"query Search {\n search(term: \"unknown entities\") {\n results\n }\n}\n","variables":{},"detected-schemas":[],"confidence":0.43}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/structured-query":{"post":{"tags":["Flow Services"],"summary":"Structured Query - question to results (all-in-one)","description":"Ask natural language questions and get results directly.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Structured Query Overview\n\nCombines two operations in one call:\n1. **NLP Query**: Generate GraphQL from question\n2. **Rows Query**: Execute generated query\n3. **Return Results**: Direct answer data\n\nSimplest way to query knowledge graph with natural language.\n\n## Comparison with Other Services\n\n### Structured Query (this service)\n- **Input**: Natural language question\n- **Output**: Query results (data)\n- **Use when**: Want simple, direct answers\n\n### NLP Query + Rows Query (separate calls)\n- **Step 1**: Convert question → GraphQL\n- **Step 2**: Execute GraphQL → results\n- **Use when**: Need to inspect/modify query before execution\n\n### Triples Query (low-level)\n- **Input**: RDF pattern\n- **Output**: Matching triples\n- **Use when**: Need precise control over graph queries\n\n## Response Format\n\nReturns standard GraphQL response:\n- **data**: Query results (null if error)\n- **errors**: Field-level errors (array of strings)\n- **error**: System-level error (generation or execution failure)\n\n## Error Handling\n\nThree types of errors:\n1. **Query generation failed**: Couldn't understand question\n - Error in `error` object\n - data = null\n2. **Query execution failed**: Generated query had errors\n - Errors in `errors` array\n - data may be partial\n3. **System error**: Infrastructure issue\n - Error in `error` object\n\n## Performance\n\nConvenience vs control trade-off:\n- **Faster development**: One call instead of two\n- **Less control**: Can't inspect/modify generated query\n- **Simpler code**: No need to handle intermediate steps\n","operationId":"structuredQueryService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructuredQueryRequest"},"examples":{"simpleQuestion":{"summary":"Simple relationship question","value":{"question":"Who does Alice know?","collection":"research"}},"complexQuestion":{"summary":"Complex multi-hop question","value":{"question":"What companies employ engineers that Bob collaborates with?","collection":"work"}},"filterQuestion":{"summary":"Question with implicit filters","value":{"question":"Which researchers work on quantum computing?"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructuredQueryResponse"},"examples":{"successfulQuery":{"summary":"Successful query with results","value":{"data":{"person":{"name":"Alice","knows":[{"name":"Bob","email":"bob@example.com"},{"name":"Carol","email":"carol@example.com"}]}},"errors":[]}},"partialResults":{"summary":"Partial results with errors","value":{"data":{"person":{"name":"Alice","knows":null}},"errors":["Cannot query field 'nonexistent' on type 'Person'"]}},"generationFailed":{"summary":"Query generation failed","value":{"data":null,"errors":[],"error":{"type":"QUERY_GENERATION_ERROR","message":"Could not understand question structure"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/structured-diag":{"post":{"tags":["Flow Services"],"summary":"Structured Diag - analyze structured data formats","description":"Analyze and understand structured data (CSV, JSON, XML).\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Structured Diag Overview\n\nHelps process unknown structured data:\n- **Detect format**: Identify CSV, JSON, or XML\n- **Generate schema**: Create descriptor from sample\n- **Match schemas**: Find existing schemas that fit data\n- **Full diagnosis**: Complete analysis in one call\n\nEssential for data ingestion pipelines.\n\n## Operations\n\n### detect-type\nIdentify data format from sample:\n- Input: Data sample\n- Output: Format (csv/json/xml) + confidence\n- Use when: Format is unknown\n\n### generate-descriptor\nCreate schema descriptor:\n- Input: Sample + known type\n- Output: Field definitions, types, structure\n- Use when: Need to understand data structure\n\n### diagnose (recommended)\nCombined analysis:\n- Input: Data sample\n- Output: Format + descriptor + metadata\n- Use when: Starting from scratch\n\n### schema-selection\nFind matching schemas:\n- Input: Data sample\n- Output: List of schema IDs that match\n- Use when: Have existing schemas, need to match data\n\n## Data Types\n\nSupported formats:\n- **CSV**: Comma-separated values (or custom delimiter)\n- **JSON**: JSON objects or arrays\n- **XML**: XML documents\n\n## Options\n\nFormat-specific options:\n- **CSV**: delimiter, has_header, quote_char\n- **JSON**: array_path (for nested arrays)\n- **XML**: root_element, record_path\n\n## Workflow Example\n\n1. Receive unknown data file\n2. Call diagnose operation with sample\n3. Get format + schema descriptor\n4. Use descriptor to process full dataset\n5. Load data via document-load or text-load\n","operationId":"structuredDiagService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructuredDiagRequest"},"examples":{"detectType":{"summary":"Detect data type","value":{"operation":"detect-type","sample":"name,age,email\nAlice,30,alice@example.com\nBob,25,bob@example.com\n"}},"generateDescriptor":{"summary":"Generate schema descriptor","value":{"operation":"generate-descriptor","sample":"name,age,email\nAlice,30,alice@example.com\n","type":"csv","schema-name":"person-records","options":{"delimiter":",","has_header":"true"}}},"diagnose":{"summary":"Full diagnosis","value":{"operation":"diagnose","sample":"[\n {\"name\": \"Alice\", \"age\": 30},\n {\"name\": \"Bob\", \"age\": 25}\n]\n"}},"schemaSelection":{"summary":"Find matching schemas","value":{"operation":"schema-selection","sample":"name,email,phone\nAlice,alice@example.com,555-1234\n"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StructuredDiagResponse"},"examples":{"detectedType":{"summary":"Type detection result","value":{"operation":"detect-type","detected-type":"csv","confidence":0.95}},"generatedDescriptor":{"summary":"Generated descriptor","value":{"operation":"generate-descriptor","descriptor":{"schema_name":"person-records","type":"csv","fields":[{"name":"name","type":"string"},{"name":"age","type":"integer"},{"name":"email","type":"string"}]},"metadata":{"field_count":"3","has_header":"true"}}},"fullDiagnosis":{"summary":"Complete diagnosis","value":{"operation":"diagnose","detected-type":"json","confidence":0.98,"descriptor":{"type":"json","structure":"array_of_objects","fields":[{"name":"name","type":"string"},{"name":"age","type":"integer"}]},"metadata":{"record_count":"2"}}},"schemaMatches":{"summary":"Schema selection results","value":{"operation":"schema-selection","schema-matches":["person-schema-v1","contact-schema-v2"]}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/graph-embeddings":{"post":{"tags":["Flow Services"],"summary":"Graph Embeddings Query - find similar entities","description":"Query graph embeddings to find similar entities by vector similarity.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Graph Embeddings Query Overview\n\nFind entities semantically similar to a query vector:\n- **Input**: Query embedding vector\n- **Search**: Compare against stored entity embeddings\n- **Output**: Most similar entities (RDF URIs)\n\nCore component of graph RAG retrieval.\n\n## Use Cases\n\n- **Entity discovery**: Find related entities\n- **Concept expansion**: Discover similar concepts\n- **Graph exploration**: Navigate by semantic similarity\n- **RAG retrieval**: Get entities for context\n\n## Process\n\n1. Obtain query embedding (via embeddings service)\n2. Query stored entity embeddings\n3. Calculate cosine similarity\n4. Return top N most similar entities\n5. Use entities to retrieve triples/subgraph\n\n## Similarity Scoring\n\nUses cosine similarity between vectors:\n- Results ordered by similarity (most similar first)\n- No explicit similarity scores returned\n- Limit controls result count\n\n## Entity Format\n\nReturns RDF values (entities):\n- URI entities: `{v: \"https://...\", e: true}`\n- These are references to knowledge graph entities\n- Use with triples query to get entity details\n","operationId":"graphEmbeddingsQueryService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphEmbeddingsQueryRequest"},"examples":{"basicQuery":{"summary":"Find similar entities","value":{"vectors":[0.023,-0.142,0.089,0.234,-0.067,0.156,0.201,-0.178],"limit":10,"collection":"research"}},"largeQuery":{"summary":"Larger result set","value":{"vectors":[0.1,-0.2,0.3,-0.4,0.5],"limit":50}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphEmbeddingsQueryResponse"},"examples":{"similarEntities":{"summary":"Similar entities found","value":{"entities":[{"v":"https://example.com/person/alice","e":true},{"v":"https://example.com/person/bob","e":true},{"v":"https://example.com/concept/quantum-computing","e":true},{"v":"https://example.com/concept/machine-learning","e":true}]}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/document-embeddings":{"post":{"tags":["Flow Services"],"summary":"Document Embeddings Query - find similar text chunks","description":"Query document embeddings to find similar text chunks by vector similarity.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Document Embeddings Query Overview\n\nFind document chunks semantically similar to a query vector:\n- **Input**: Query embedding vector\n- **Search**: Compare against stored chunk embeddings\n- **Output**: Most similar text chunks\n\nCore component of document RAG retrieval.\n\n## Use Cases\n\n- **Document retrieval**: Find relevant passages\n- **Semantic search**: Search by meaning not keywords\n- **Context gathering**: Get text for RAG\n- **Similar content**: Discover related documents\n\n## Process\n\n1. Obtain query embedding (via embeddings service)\n2. Query stored document chunk embeddings\n3. Calculate cosine similarity\n4. Return top N most similar chunks\n5. Use chunks as context for generation\n\n## Chunking\n\nDocuments are split into chunks during indexing:\n- Typical size: 200-1000 tokens\n- Overlap between chunks for continuity\n- Each chunk has own embedding\n\nQueries return individual chunks, not full documents.\n\n## Similarity Scoring\n\nUses cosine similarity:\n- Results ordered by similarity\n- No explicit scores in response\n- Limit controls result count\n\n## Output Format\n\nReturns text chunks as strings:\n- Raw chunk text\n- No metadata (source, position, etc.)\n- Use for LLM context directly\n","operationId":"documentEmbeddingsQueryService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentEmbeddingsQueryRequest"},"examples":{"basicQuery":{"summary":"Find similar chunks","value":{"vectors":[0.023,-0.142,0.089,0.234,-0.067,0.156,0.201,-0.178],"limit":10,"collection":"research"}},"largeQuery":{"summary":"Larger result set","value":{"vectors":[0.1,-0.2,0.3,-0.4,0.5],"limit":30}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentEmbeddingsQueryResponse"},"examples":{"similarChunks":{"summary":"Similar document chunks","value":{"chunks":["Quantum computing uses quantum mechanics principles like superposition and entanglement for computation. Unlike classical bits, quantum bits (qubits) can exist in multiple states simultaneously.","Neural networks are computing systems inspired by biological neural networks. They consist of interconnected nodes organized in layers that process information through weighted connections.","Machine learning algorithms learn patterns from data without being explicitly programmed. They improve their performance through experience and exposure to training data."]}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/row-embeddings":{"post":{"tags":["Flow Services"],"summary":"Row Embeddings Query - semantic search on structured data","description":"Query row embeddings to find similar rows by vector similarity on indexed fields.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\nEnables fuzzy/semantic matching on structured data.\n\n## Row Embeddings Query Overview\n\nFind rows whose indexed field values are semantically similar to a query:\n- **Input**: Query embedding vector, schema name, optional index filter\n- **Search**: Compare against stored row index embeddings\n- **Output**: Matching rows with index values and similarity scores\n\nCore component of semantic search on structured data.\n\n## Use Cases\n\n- **Fuzzy name matching**: Find customers by approximate name\n- **Semantic field search**: Find products by description similarity\n- **Data deduplication**: Identify potential duplicate records\n- **Entity resolution**: Match records across datasets\n\n## Process\n\n1. Obtain query embedding (via embeddings service)\n2. Query stored row index embeddings for the specified schema\n3. Calculate cosine similarity\n4. Return top N most similar index entries\n5. Use index values to retrieve full rows via GraphQL\n\n## Response Format\n\nEach match includes:\n- `index_name`: The indexed field(s) that matched\n- `index_value`: The actual values for those fields\n- `text`: The text that was embedded\n- `score`: Similarity score (higher = more similar)\n","operationId":"rowEmbeddingsQueryService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowEmbeddingsQueryRequest"},"examples":{"basicQuery":{"summary":"Find similar customer names","value":{"vectors":[0.023,-0.142,0.089,0.234,-0.067,0.156,0.201,-0.178],"schema_name":"customers","limit":10,"collection":"sales"}},"filteredQuery":{"summary":"Search specific index","value":{"vectors":[0.1,-0.2,0.3,-0.4,0.5],"schema_name":"products","index_name":"description","limit":20}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RowEmbeddingsQueryResponse"},"examples":{"similarRows":{"summary":"Similar rows found","value":{"matches":[{"index_name":"full_name","index_value":["John","Smith"],"text":"John Smith","score":0.95},{"index_name":"full_name","index_value":["Jon","Smythe"],"text":"Jon Smythe","score":0.82},{"index_name":"full_name","index_value":["Jonathan","Schmidt"],"text":"Jonathan Schmidt","score":0.76}]}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/text-load":{"post":{"tags":["Flow Services"],"summary":"Text Load - load text documents","description":"Load text documents into processing pipeline for indexing and embedding.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Text Load Overview\n\nFire-and-forget document loading:\n- **Input**: Text content (raw UTF-8 or base64 encoded)\n- **Process**: Chunk, embed, store\n- **Output**: None (202 Accepted)\n\nAsynchronous processing - document queued for background processing.\n\n## Processing Pipeline\n\nText documents go through:\n1. **Chunking**: Split into overlapping chunks\n2. **Embedding**: Generate vectors for each chunk\n3. **Storage**: Store chunks + embeddings\n4. **Indexing**: Make searchable via document-embeddings query\n\nPipeline runs asynchronously after request returns.\n\n## Text Format\n\nText may be sent as raw UTF-8 text:\n```\n{\n \"text\": \"Cancer survival: 2.74× higher hazard ratio\"\n}\n```\n\nOlder clients may still send base64 encoded text:\n```\ntext_content = \"This is the document...\"\nencoded = base64.b64encode(text_content.encode('utf-8'))\n```\n\nDefault charset is UTF-8, specify `charset` if different.\n\n## Metadata\n\nOptional RDF triples describing document:\n- Title, author, date\n- Source URL\n- Custom properties\n- Used for organization and retrieval\n\n## Use Cases\n\n- **Document ingestion**: Add documents to knowledge base\n- **Bulk loading**: Process multiple documents\n- **Content updates**: Replace existing documents\n- **Library integration**: Load from document library\n\n## No Response Data\n\nReturns 202 Accepted immediately:\n- Document queued for processing\n- No synchronous result\n- No processing status\n- Check document-embeddings query later to verify indexed\n","operationId":"textLoadService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextLoadRequest"},"examples":{"simpleLoad":{"summary":"Load text document","value":{"text":"This is the document text...","id":"doc-123","collection":"research"}},"withMetadata":{"summary":"Load with RDF metadata using base64 text","value":{"text":"UXVhbnR1bSBjb21wdXRpbmcgdXNlcyBxdWFudHVtIG1lY2hhbmljcyBwcmluY2lwbGVzLi4u","id":"doc-456","collection":"research","metadata":[{"s":{"v":"doc-456","e":false},"p":{"v":"http://purl.org/dc/terms/title","e":true},"o":{"v":"Introduction to Quantum Computing","e":false}},{"s":{"v":"doc-456","e":false},"p":{"v":"http://purl.org/dc/terms/creator","e":true},"o":{"v":"Dr. Alice Smith","e":false}}]}}}}}},"responses":{"202":{"description":"Document accepted for processing","content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/document-load":{"post":{"tags":["Flow Services"],"summary":"Document Load - load binary documents (PDF, etc.)","description":"Load binary documents (PDF, Word, etc.) into processing pipeline.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Document Load Overview\n\nFire-and-forget binary document loading:\n- **Input**: Document data (base64 encoded)\n- **Process**: Extract text, chunk, embed, store\n- **Output**: None (202 Accepted)\n\nAsynchronous processing for PDF and other binary formats.\n\n## Processing Pipeline\n\nDocuments go through:\n1. **Text extraction**: PDF→text, DOCX→text, etc.\n2. **Chunking**: Split into overlapping chunks\n3. **Embedding**: Generate vectors for each chunk\n4. **Storage**: Store chunks + embeddings\n5. **Indexing**: Make searchable\n\nPipeline runs asynchronously.\n\n## Supported Formats\n\n- **PDF**: Portable Document Format\n- **DOCX**: Microsoft Word\n- **HTML**: Web pages\n- Other formats via extractors\n\nFormat detected from content, not extension.\n\n## Binary Encoding\n\nDocuments must be base64 encoded:\n```python\nwith open('document.pdf', 'rb') as f:\n doc_bytes = f.read()\nencoded = base64.b64encode(doc_bytes).decode('utf-8')\n```\n\n## Metadata\n\nOptional RDF triples:\n- Document properties\n- Source information\n- Custom attributes\n\n## Use Cases\n\n- **PDF ingestion**: Process research papers\n- **Document libraries**: Index document collections\n- **Content migration**: Import from other systems\n- **Automated processing**: Batch document loading\n\n## No Response Data\n\nReturns 202 Accepted immediately:\n- Document queued\n- Processing happens asynchronously\n- No status tracking\n- Query later to verify indexed\n","operationId":"documentLoadService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentLoadRequest"},"examples":{"loadPdf":{"summary":"Load PDF document","value":{"data":"JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFI+PmVuZG9iagoyIDAgb2JqCjw8L1R5cGUvUGFnZXMvS2lkc1szIDAgUl0vQ291bnQgMT4+ZW5kb2JqCg==","id":"doc-789","collection":"research"}},"withMetadata":{"summary":"Load with metadata","value":{"data":"JVBERi0xLjQKJeLjz9MK...","id":"doc-101112","collection":"papers","metadata":[{"s":{"v":"doc-101112","e":false},"p":{"v":"http://purl.org/dc/terms/title","e":true},"o":{"v":"Quantum Entanglement Research","e":false}},{"s":{"v":"doc-101112","e":false},"p":{"v":"http://purl.org/dc/terms/date","e":true},"o":{"v":"2024-01-15","e":false}}]}}}}}},"responses":{"202":{"description":"Document accepted for processing","content":{"application/json":{"schema":{"type":"object","properties":{}},"example":{}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/flow/{flow}/service/sparql-query":{"post":{"tags":["Flow Services"],"summary":"SPARQL query - execute SPARQL 1.1 queries against the knowledge graph","description":"Execute a SPARQL 1.1 query against the knowledge graph.\n\nThis is a **flow-scoped** service. It requires a flow instance\nand operates within the workspace associated with the\nauthenticated bearer token.\n\n## Supported Query Types\n\n- **SELECT**: Returns variable bindings as a table of results\n- **ASK**: Returns true/false for existence checks\n- **CONSTRUCT**: Returns a set of triples built from a template\n- **DESCRIBE**: Returns triples describing matched resources\n\n## SPARQL Features\n\nSupports standard SPARQL 1.1 features including:\n- Basic Graph Patterns (BGPs) with triple pattern matching\n- OPTIONAL, UNION, FILTER\n- BIND, VALUES\n- ORDER BY, LIMIT, OFFSET, DISTINCT\n- GROUP BY with aggregates (COUNT, SUM, AVG, MIN, MAX, GROUP_CONCAT)\n- Built-in functions (isIRI, STR, REGEX, CONTAINS, etc.)\n\n## Query Examples\n\nFind all entities of a type:\n```sparql\nSELECT ?s ?label WHERE {\n ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.com/Person> .\n ?s <http://www.w3.org/2000/01/rdf-schema#label> ?label .\n}\nLIMIT 10\n```\n\nCheck if an entity exists:\n```sparql\nASK { <http://example.com/alice> ?p ?o }\n```\n","operationId":"sparqlQueryService","security":[{"bearerAuth":[]}],"parameters":[{"name":"flow","in":"path","required":true,"schema":{"type":"string"},"description":"Flow instance ID","example":"my-flow"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"SPARQL 1.1 query string"},"collection":{"type":"string","default":"default","description":"Collection identifier"},"limit":{"type":"integer","default":10000,"description":"Safety limit on number of results"}}},"examples":{"selectQuery":{"summary":"SELECT query","value":{"query":"SELECT ?s ?p ?o WHERE { ?s ?p ?o } LIMIT 10","collection":"default"}},"askQuery":{"summary":"ASK query","value":{"query":"ASK { <http://example.com/alice> ?p ?o }"}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"query-type":{"type":"string","enum":["select","ask","construct","describe"]},"variables":{"type":"array","items":{"type":"string"},"description":"Variable names (SELECT only)"},"bindings":{"type":"array","items":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/RdfValue"}}}},"description":"Result rows (SELECT only)"},"ask-result":{"type":"boolean","description":"Boolean result (ASK only)"},"triples":{"type":"array","description":"Result triples (CONSTRUCT/DESCRIBE only)"},"error":{"type":"object","properties":{"type":{"type":"string"},"message":{"type":"string"}}}}},"examples":{"selectResult":{"summary":"SELECT result","value":{"query-type":"select","variables":["s","p","o"],"bindings":[{"values":[{"t":"i","i":"http://example.com/alice"},{"t":"i","i":"http://www.w3.org/1999/02/22-rdf-syntax-ns#type"},{"t":"i","i":"http://example.com/Person"}]}]}},"askResult":{"summary":"ASK result","value":{"query-type":"ask","ask-result":true}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/document-stream":{"get":{"tags":["Import/Export"],"summary":"Stream document content from library","description":"Streams the raw content of a document stored in the library.\nReturns the document content in chunked transfer encoding.\n\n## Parameters\n\n- `document-id`: Document IRI to retrieve (required)\n- `chunk-size`: Size of each response chunk in bytes (optional, default: 1MB)\n","operationId":"documentStream","security":[{"bearerAuth":[]}],"parameters":[{"name":"document-id","in":"query","required":true,"schema":{"type":"string"},"description":"Document IRI to retrieve","example":"urn:trustgraph:doc:abc123"},{"name":"chunk-size","in":"query","required":false,"schema":{"type":"integer","default":1048576},"description":"Chunk size in bytes (default 1MB)"}],"responses":{"200":{"description":"Document content streamed as raw bytes","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Missing required parameters"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/import-core":{"post":{"tags":["Import/Export"],"summary":"Import Core - bulk import triples and embeddings","description":"Import knowledge cores in bulk using streaming MessagePack format.\n\n## Import Core Overview\n\nBulk data import for knowledge graph:\n- **Format**: MessagePack streaming\n- **Content**: Triples and/or graph embeddings\n- **Target**: Global knowledge storage\n- **Use**: Backup restoration, data migration, bulk loading\n\n## MessagePack Protocol\n\nRequest body is MessagePack stream with message tuples:\n\n### Triple Message\n```\n(\"t\", {\n \"m\": { // Metadata\n \"i\": \"core-id\", // Knowledge core ID\n \"m\": [...], // Metadata triples array\n \"c\": \"collection\" // Collection\n },\n \"t\": [...] // Triples array\n})\n```\n\n### Graph Embeddings Message\n```\n(\"ge\", {\n \"m\": { // Metadata\n \"i\": \"core-id\",\n \"m\": [...],\n \"c\": \"collection\"\n },\n \"e\": [ // Entities array\n {\n \"e\": {\"v\": \"uri\", \"e\": true}, // Entity RdfValue\n \"v\": [0.1, 0.2, ...] // Vectors\n }\n ]\n})\n```\n\n## Query Parameters\n\n- **id**: Knowledge core ID\n\n## Streaming\n\nMultiple messages can be sent in stream.\nEach message processed as received.\nNo response body - returns 202 Accepted.\n\n## Use Cases\n\n- **Backup restoration**: Restore from export\n- **Data migration**: Move data between systems\n- **Bulk loading**: Initial knowledge base population\n- **Replication**: Copy knowledge cores\n","operationId":"importCore","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"},"description":"Knowledge core ID to import","example":"core-123"}],"requestBody":{"required":true,"content":{"application/msgpack":{"schema":{"type":"string","format":"binary","description":"MessagePack stream of knowledge data"}}}},"responses":{"202":{"description":"Import accepted and processing","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/export-core":{"get":{"tags":["Import/Export"],"summary":"Export Core - bulk export triples and embeddings","description":"Export knowledge cores in bulk using streaming MessagePack format.\n\n## Export Core Overview\n\nBulk data export for knowledge graph:\n- **Format**: MessagePack streaming\n- **Content**: Triples and graph embeddings\n- **Source**: Global knowledge storage\n- **Use**: Backups, data migration, archival\n\n## MessagePack Protocol\n\nResponse body is MessagePack stream with message tuples:\n\n### Triple Message\n```\n(\"t\", {\n \"m\": { // Metadata\n \"i\": \"core-id\", // Knowledge core ID\n \"m\": [...], // Metadata triples array\n \"c\": \"collection\" // Collection\n },\n \"t\": [...] // Triples array\n})\n```\n\n### Graph Embeddings Message\n```\n(\"ge\", {\n \"m\": { // Metadata\n \"i\": \"core-id\",\n \"m\": [...],\n \"c\": \"collection\"\n },\n \"e\": [ // Entities array\n {\n \"e\": {\"v\": \"uri\", \"e\": true}, // Entity RdfValue\n \"v\": [0.1, 0.2, ...] // Vectors\n }\n ]\n})\n```\n\n### End of Stream Message\n```\n(\"eos\", {})\n```\n\n## Query Parameters\n\n- **id**: Knowledge core ID to export\n\n## Streaming\n\nData streamed incrementally:\n- Triples sent first\n- Graph embeddings sent next\n- EOS marker signals completion\n\nClient should process messages as received.\n\n## Use Cases\n\n- **Backups**: Export for disaster recovery\n- **Data migration**: Move to another system\n- **Archival**: Long-term storage\n- **Replication**: Copy knowledge cores\n- **Analysis**: External processing\n","operationId":"exportCore","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"},"description":"Knowledge core ID to export","example":"core-123"}],"responses":{"200":{"description":"Export stream","content":{"application/msgpack":{"schema":{"type":"string","format":"binary","description":"MessagePack stream of knowledge data"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/v1/socket":{"get":{"tags":["WebSocket"],"summary":"WebSocket - multiplexed service interface","description":"WebSocket interface providing multiplexed access to all TrustGraph services over a single persistent connection.\n\n## Overview\n\nThe WebSocket API provides access to the same services as the REST API but with:\n- **Multiplexed**: Multiple concurrent requests over one connection\n- **Asynchronous**: Non-blocking request/response with ID matching\n- **Efficient**: Reduced overhead compared to HTTP\n- **Real-time**: Low latency bidirectional communication\n\n## Connection\n\nEstablish WebSocket connection to:\n```\nws://localhost:8088/api/v1/socket\n```\n\n## Message Protocol\n\nAll messages are JSON objects with the following structure:\n\n### Request Message Format\n\n**Workspace-Scoped Service Request** (no flow parameter):\n```json\n{\n \"id\": \"req-123\",\n \"service\": \"config\",\n \"request\": {\n \"operation\": \"list\",\n \"type\": \"flow\"\n }\n}\n```\n\n**Flow-Scoped Service Request** (with flow parameter):\n```json\n{\n \"id\": \"req-456\",\n \"service\": \"agent\",\n \"flow\": \"my-flow\",\n \"request\": {\n \"question\": \"What is quantum computing?\",\n \"streaming\": true\n }\n}\n```\n\n**Request Fields**:\n- `id` (string, required): Client-generated unique identifier for this request within the session. Used to match responses to requests.\n- `service` (string, required): Service identifier (e.g., \"config\", \"agent\", \"document-rag\"). Same as `{kind}` in REST URLs.\n- `flow` (string, optional): Flow ID for flow-scoped services. Omit for workspace-scoped and global services.\n- `request` (object, required): Service-specific request payload. Same structure as REST API request body.\n\n### Response Message Format\n\n**Success Response**:\n```json\n{\n \"id\": \"req-123\",\n \"response\": {\n \"chunk-type\": \"answer\",\n \"content\": \"Quantum computing uses...\",\n \"end-of-stream\": false\n }\n}\n```\n\n**Error Response**:\n```json\n{\n \"id\": \"req-123\",\n \"error\": {\n \"type\": \"gateway-error\",\n \"message\": \"Flow not found\"\n }\n}\n```\n\n**Response Fields**:\n- `id` (string, required): Matches the `id` from the request. Client uses this to correlate responses.\n- `response` (object, conditional): Service-specific response payload. Same structure as REST API response. Present on success.\n- `error` (object, conditional): Error information with `type` and `message` fields. Present on failure.\n\n## Service Routing\n\nThe WebSocket protocol routes to services using message parameters instead of URL paths:\n\n| REST Endpoint | WebSocket Message |\n|--------------|-------------------|\n| `POST /api/v1/config` | `{\"service\": \"config\"}` |\n| `POST /api/v1/flow/{flow}/service/agent` | `{\"service\": \"agent\", \"flow\": \"my-flow\"}` |\n\n**Workspace-Scoped Services** (no `flow` parameter, workspace from token):\n- `config` - Configuration management\n- `flow` - Flow lifecycle and blueprints\n- `librarian` - Document library management\n- `knowledge` - Knowledge graph core management\n- `collection-management` - Collection metadata\n\n**Flow-Scoped Services** (require `flow` parameter, workspace from token):\n- AI services: `agent`, `text-completion`, `prompt`, `document-rag`, `graph-rag`\n- Embeddings: `embeddings`, `graph-embeddings`, `document-embeddings`\n- Query: `triples`, `objects`, `nlp-query`, `structured-query`\n- Data loading: `text-load`, `document-load`\n- Utilities: `mcp-tool`, `structured-diag`\n\n## Request/Response Schemas\n\nThe `request` and `response` fields use **identical schemas** to the REST API for each service.\nSee individual service documentation for detailed request/response formats.\n\n## Multiplexing and Asynchronous Operation\n\nMultiple requests can be in flight simultaneously:\n- Client sends requests with unique `id` values\n- Server processes requests concurrently\n- Responses arrive asynchronously and may be out of order\n- Client matches responses to requests using the `id` field\n- No head-of-line blocking\n\n**Example concurrent requests**:\n```json\n{\"id\": \"req-1\", \"service\": \"config\", \"request\": {...}}\n{\"id\": \"req-2\", \"service\": \"agent\", \"flow\": \"f1\", \"request\": {...}}\n{\"id\": \"req-3\", \"service\": \"document-rag\", \"flow\": \"f2\", \"request\": {...}}\n```\n\nResponses may arrive in any order: `req-2`, `req-1`, `req-3`\n\n## Streaming Responses\n\nServices that support streaming (e.g., agent, RAG) send multiple response messages with the same `id`:\n```json\n{\"id\": \"req-1\", \"response\": {\"chunk-type\": \"thought\", \"content\": \"...\", \"end-of-stream\": false}}\n{\"id\": \"req-1\", \"response\": {\"chunk-type\": \"answer\", \"content\": \"...\", \"end-of-stream\": false}}\n{\"id\": \"req-1\", \"response\": {\"chunk-type\": \"answer\", \"content\": \"...\", \"end-of-stream\": true}}\n```\n\nThe `end-of-stream` flag (or service-specific completion flag) indicates the final message.\n\n## Authentication\n\nThe `/api/v1/socket` endpoint uses in-band authentication.\nThe WebSocket handshake is accepted unconditionally. After\nconnecting, the client sends a bearer token as the first frame.\nThe gateway resolves the token to an identity and workspace.\nAll subsequent requests operate within that workspace context.\n\n## Benefits Over REST\n\n- **Lower latency**: No TCP/TLS handshake per request\n- **Connection reuse**: Single persistent connection\n- **Reduced overhead**: No HTTP headers per message\n- **True streaming**: Bidirectional real-time communication\n- **Efficient multiplexing**: Concurrent operations without connection pooling\n","operationId":"websocketConnection","security":[{"bearerAuth":[]}],"parameters":[{"name":"Upgrade","in":"header","required":true,"schema":{"type":"string","enum":["websocket"]},"description":"WebSocket upgrade header"},{"name":"Connection","in":"header","required":true,"schema":{"type":"string","enum":["Upgrade"]},"description":"Connection upgrade header"}],"responses":{"101":{"description":"Switching Protocols - WebSocket connection established"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/metrics":{"get":{"tags":["Metrics"],"summary":"Metrics - Prometheus metrics endpoint","description":"Proxy to Prometheus metrics for system monitoring.\n\n## Metrics Overview\n\nExposes system metrics via Prometheus format:\n- **Gateway metrics**: Request rates, latencies, errors\n- **Flow metrics**: Processing throughput, queue depths\n- **System metrics**: Resource usage, health status\n\n## Prometheus Format\n\nReturns metrics in Prometheus text exposition format:\n```\n# HELP metric_name Description\n# TYPE metric_name counter\nmetric_name{label=\"value\"} 123.45\n```\n\n## Available Metrics\n\nCommon metrics include:\n- Request count and rates\n- Response times (histograms)\n- Error rates\n- Active connections\n- Queue depths\n- Processing latencies\n\n## Integration\n\nStandard Prometheus scraping:\n- Configure Prometheus to scrape `/api/metrics`\n- Set appropriate scrape interval\n- Use bearer token if authentication enabled\n\n## Path Parameter\n\nThe `{path}` parameter allows querying specific Prometheus endpoints\nor metrics if the backend Prometheus supports it.\n","operationId":"getMetrics","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Prometheus metrics","content":{"text/plain":{"schema":{"type":"string","example":"# HELP http_requests_total Total HTTP requests\n# TYPE http_requests_total counter\nhttp_requests_total{method=\"POST\",endpoint=\"/api/v1/flow/my-flow/service/agent\"} 1234\n\n# HELP http_request_duration_seconds HTTP request latency\n# TYPE http_request_duration_seconds histogram\nhttp_request_duration_seconds_bucket{le=\"0.1\"} 500\nhttp_request_duration_seconds_bucket{le=\"0.5\"} 950\nhttp_request_duration_seconds_bucket{le=\"1.0\"} 990\nhttp_request_duration_seconds_sum 450.5\nhttp_request_duration_seconds_count 1000\n"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}},"/api/metrics/{path}":{"get":{"tags":["Metrics"],"summary":"Metrics - Prometheus metrics with path","description":"Proxy to Prometheus metrics with optional path parameter.\n","operationId":"getMetricsPath","security":[{"bearerAuth":[]}],"parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string"},"description":"Path to specific metrics endpoint","example":"query"}],"responses":{"200":{"description":"Prometheus metrics","content":{"text/plain":{"schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/Error"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Bearer token authentication.\n\nClients authenticate by passing an opaque token in the\n`Authorization` header. The token is treated as an opaque string by\nclients — its internal structure is a gateway implementation detail\nand must not be relied upon.\n\nThe gateway resolves the token to an authenticated identity and an\nassociated workspace. All workspace-scoped and flow-scoped operations\nthen execute within that workspace context.\n\nTokens are obtained via the IAM service (e.g. `tg-login` or\n`tg-create-api-key`).\n\nExample:\n```\nAuthorization: Bearer <token>\n```\n"}},"schemas":{"ConfigRequest":{"type":"object","description":"Configuration service request.\n\nSupports operations: config, list, get, put, delete\n","required":["operation"],"properties":{"operation":{"type":"string","enum":["config","list","get","put","delete"],"description":"Operation to perform:\n- `config`: Get complete configuration\n- `list`: List all items of a specific type\n- `get`: Get specific configuration items\n- `put`: Set/update configuration values\n- `delete`: Delete configuration items\n","example":"config"},"type":{"type":"string","description":"Configuration type (required for list, get, put, delete operations).\nCommon types: flow, prompt, token-cost, parameter-type, interface-description\n","example":"flow"},"keys":{"type":"array","description":"Keys to retrieve (for get operation) or delete (for delete operation)","items":{"type":"object","required":["type","key"],"properties":{"type":{"type":"string","description":"Configuration type","example":"flow"},"key":{"type":"string","description":"Configuration key","example":"my-flow"}}}},"values":{"type":"array","description":"Values to set/update (for put operation)","items":{"type":"object","required":["type","key","value"],"properties":{"type":{"type":"string","description":"Configuration type","example":"flow"},"key":{"type":"string","description":"Configuration key","example":"my-flow"},"value":{"type":"object","description":"Configuration value (structure depends on type)","additionalProperties":true,"example":{"blueprint-name":"document-rag","description":"My RAG flow"}}}}}}},"ConfigResponse":{"type":"object","description":"Configuration service response","properties":{"version":{"type":"integer","description":"Configuration version number","example":42},"config":{"type":"object","description":"Complete configuration (returned by 'config' operation)","additionalProperties":true,"example":{"flow":{"default":{"blueprint-name":"document-rag+graph-rag","description":"Default flow"}},"prompt":{"system":"You are a helpful AI assistant"},"token-cost":{"gpt-4":{"prompt":0.03,"completion":0.06}}}},"directory":{"type":"array","description":"List of keys (returned by 'list' operation)","items":{"type":"string"},"example":["default","production","my-flow"]},"values":{"type":"array","description":"Retrieved configuration values (returned by 'get' operation)","items":{"type":"object","properties":{"type":{"type":"string","example":"flow"},"key":{"type":"string","example":"default"},"value":{"type":"object","additionalProperties":true,"example":{"blueprint-name":"document-rag+graph-rag","description":"Default flow"}}}}}}},"ErrorObject":{"type":"object","description":"Structured error response with type and message","properties":{"type":{"type":"string","description":"Error type identifier","example":"gateway-error"},"message":{"type":"string","description":"Human-readable error message","example":"Timeout"}},"required":["type","message"]},"FlowRequest":{"type":"object","description":"Flow service request for managing flow instances and blueprints.\n\nOperations: start-flow, stop-flow, list-flows, get-flow,\nlist-blueprints, get-blueprint, put-blueprint, delete-blueprint\n","required":["operation"],"properties":{"operation":{"type":"string","enum":["start-flow","stop-flow","list-flows","get-flow","list-blueprints","get-blueprint","put-blueprint","delete-blueprint"],"description":"Flow operation:\n- `start-flow`: Start a new flow instance from a blueprint\n- `stop-flow`: Stop a running flow instance\n- `list-flows`: List all running flow instances\n- `get-flow`: Get details of a running flow\n- `list-blueprints`: List available flow blueprints\n- `get-blueprint`: Get blueprint definition\n- `put-blueprint`: Create/update blueprint definition\n- `delete-blueprint`: Delete blueprint definition\n"},"flow-id":{"type":"string","description":"Flow instance ID (required for start-flow, stop-flow, get-flow)","example":"my-flow"},"blueprint-name":{"type":"string","description":"Flow blueprint name (required for start-flow, get-blueprint, put-blueprint, delete-blueprint)","example":"document-rag"},"blueprint-definition":{"type":"object","description":"Flow blueprint definition (required for put-blueprint)","additionalProperties":true,"example":{"description":"Custom RAG pipeline","parameters":{"model":{"type":"llm-model","description":"LLM model for processing","order":1}},"class":{"text-completion:{class}":{"request":"non-persistent://tg/request/text-completion:{class}","response":"non-persistent://tg/response/text-completion:{class}"}},"flow":{"chunker:{id}":{"input":"persistent://tg/flow/chunk:{id}","output":"persistent://tg/flow/chunk-load:{id}"}},"interfaces":{"agent":{"request":"non-persistent://tg/request/agent:{id}","response":"non-persistent://tg/response/agent:{id}"}}}},"description":{"type":"string","description":"Flow description (optional for start-flow)","example":"My document processing flow"},"parameters":{"type":"object","description":"Flow parameters (for start-flow).\nAll values are stored as strings, regardless of input type.\n","additionalProperties":{"type":"string"},"example":{"model":"gpt-4","temperature":"0.7","chunk-size":"1000"}}}},"FlowResponse":{"type":"object","description":"Flow service response","properties":{"flow-id":{"type":"string","description":"Flow instance ID (returned by start-flow)","example":"my-flow"},"flow-ids":{"type":"array","description":"List of running flow IDs (returned by list-flows)","items":{"type":"string"},"example":["default","production","my-flow"]},"blueprint-names":{"type":"array","description":"List of available blueprint names (returned by list-blueprints)","items":{"type":"string"},"example":["document-rag","graph-rag","document-rag+graph-rag"]},"blueprint-definition":{"type":"object","description":"Blueprint definition (returned by get-blueprint)","additionalProperties":true,"example":{"description":"Standard RAG pipeline","parameters":{"model":{"type":"llm-model","order":1}},"class":{"text-completion:{class}":{"request":"non-persistent://tg/request/text-completion:{class}","response":"non-persistent://tg/response/text-completion:{class}"}},"flow":{"chunker:{id}":{"input":"persistent://tg/flow/chunk:{id}","output":"persistent://tg/flow/chunk-load:{id}"}},"interfaces":{"agent":{"request":"non-persistent://tg/request/agent:{id}","response":"non-persistent://tg/response/agent:{id}"}}}},"flow":{"type":"object","description":"Flow instance details (returned by get-flow)","properties":{"blueprint-name":{"type":"string","example":"document-rag"},"description":{"type":"string","example":"My document processing flow"},"parameters":{"type":"object","description":"Flow parameters (all values are strings)","additionalProperties":{"type":"string"},"example":{"model":"gpt-4","temperature":"0.7"}},"interfaces":{"type":"object","description":"Service interfaces with resolved queue names","additionalProperties":true,"example":{"agent":{"request":"non-persistent://tg/request/agent:my-flow","response":"non-persistent://tg/response/agent:my-flow"},"text-load":"persistent://tg/flow/text-document-load:my-flow"}}}},"description":{"type":"string","description":"Description"},"parameters":{"type":"object","description":"Parameters","additionalProperties":{"type":"string"}}}},"DocumentMetadata":{"type":"object","description":"Document metadata for library management","properties":{"url":{"type":"string","description":"Document URL or identifier","example":"https://example.com/document.pdf"},"title":{"type":"string","description":"Document title","example":"Example Document"},"author":{"type":"string","description":"Document author","example":"John Doe"},"date":{"type":"string","description":"Document date","example":"2024-01-15"},"metadata":{"type":"object","description":"Additional metadata fields","additionalProperties":true,"example":{"department":"Engineering","category":"Technical"}}}},"ProcessingMetadata":{"type":"object","description":"Processing metadata for library document processing","properties":{"flow":{"type":"string","description":"Flow ID","example":"my-flow"},"collection":{"type":"string","description":"Collection identifier","example":"default"},"status":{"type":"string","description":"Processing status","enum":["pending","processing","completed","failed"],"example":"completed"},"timestamp":{"type":"string","format":"date-time","description":"Processing timestamp","example":"2024-01-15T10:30:00Z"},"error":{"type":"string","description":"Error message if processing failed","example":"Failed to extract text from PDF"}}},"LibrarianRequest":{"type":"object","description":"Librarian service request for document library management.\n\nOperations: add-document, remove-document, list-documents,\nget-document-metadata, stream-document, add-child-document,\nlist-children, begin-upload, upload-chunk, complete-upload,\nabort-upload, get-upload-status, list-uploads,\nstart-processing, stop-processing, list-processing\n","required":["operation"],"properties":{"operation":{"type":"string","enum":["add-document","remove-document","list-documents","get-document-metadata","get-document-content","stream-document","add-child-document","list-children","begin-upload","upload-chunk","complete-upload","abort-upload","get-upload-status","list-uploads","start-processing","stop-processing","list-processing"],"description":"Library operation:\n- `add-document`: Add document to library\n- `remove-document`: Remove document from library\n- `list-documents`: List documents in library\n- `get-document-metadata`: Get document metadata\n- `get-document-content`: Get full document content in a single response.\n **Deprecated** — use `stream-document` instead. Fails for documents\n exceeding the broker's max message size.\n- `stream-document`: Stream document content in chunks. Each response\n includes `chunk_index` and `is_final`. Preferred over `get-document-content`\n for all document sizes.\n- `add-child-document`: Add a child document (e.g. page, chunk)\n- `list-children`: List child documents of a parent\n- `begin-upload`: Start a chunked upload session\n- `upload-chunk`: Upload a chunk of data\n- `complete-upload`: Finalize a chunked upload\n- `abort-upload`: Cancel a chunked upload\n- `get-upload-status`: Check upload progress\n- `list-uploads`: List active upload sessions\n- `start-processing`: Start processing library documents\n- `stop-processing`: Stop library processing\n- `list-processing`: List processing status\n"},"flow":{"type":"string","description":"Flow ID","example":"my-flow"},"collection":{"type":"string","description":"Collection identifier","default":"default","example":"default"},"document-id":{"type":"string","description":"Document identifier","example":"doc-123"},"processing-id":{"type":"string","description":"Processing task identifier","example":"proc-456"},"document-metadata":{"$ref":"#/components/schemas/DocumentMetadata"},"processing-metadata":{"$ref":"#/components/schemas/ProcessingMetadata"},"content":{"type":"string","description":"Document content (for add-document with inline content)","example":"This is the document content..."},"criteria":{"type":"array","description":"Search criteria for filtering documents","items":{"type":"object","required":["key","value","operator"],"properties":{"key":{"type":"string","description":"Metadata field name","example":"author"},"value":{"type":"string","description":"Value to match","example":"John Doe"},"operator":{"type":"string","enum":["eq","ne","gt","lt","contains"],"description":"Comparison operator","example":"eq"}}}}}},"LibrarianResponse":{"type":"object","description":"Librarian service response","properties":{"document-metadata":{"$ref":"#/components/schemas/DocumentMetadata"},"content":{"type":"string","description":"Document content"},"document-metadatas":{"type":"array","description":"List of documents (returned by list-documents)","items":{"$ref":"#/components/schemas/DocumentMetadata"}},"processing-metadatas":{"type":"array","description":"List of processing tasks (returned by list-processing)","items":{"$ref":"#/components/schemas/ProcessingMetadata"}}}},"RdfValue":{"type":"object","description":"RDF Term - typed representation of a value in the knowledge graph.\n\nTerm types (discriminated by `t` field):\n- `i`: IRI (URI reference)\n- `l`: Literal (string value, optionally with datatype or language tag)\n- `r`: Quoted triple (RDF-star reification)\n- `b`: Blank node\n","properties":{"t":{"type":"string","description":"Term type discriminator","enum":["i","l","r","b"],"example":"i"},"i":{"type":"string","description":"IRI value (when t=i)","example":"http://example.com/Person1"},"v":{"type":"string","description":"Literal value (when t=l)","example":"John Doe"},"d":{"type":"string","description":"Datatype IRI for literal (when t=l, optional)","example":"http://www.w3.org/2001/XMLSchema#integer"},"l":{"type":"string","description":"Language tag for literal (when t=l, optional)","example":"en"},"r":{"type":"object","description":"Quoted triple (when t=r) - contains s, p, o as nested Term objects with the same structure","properties":{"s":{"type":"object","description":"Subject term"},"p":{"type":"object","description":"Predicate term"},"o":{"type":"object","description":"Object term"}}}},"required":["t"],"examples":[{"description":"IRI term","value":{"t":"i","i":"http://schema.org/name"}},{"description":"Literal term","value":{"t":"l","v":"John Doe"}},{"description":"Literal with language tag","value":{"t":"l","v":"Bonjour","l":"fr"}}]},"Triple":{"type":"object","description":"RDF triple (subject-predicate-object), optionally scoped to a named graph.\n","required":["s","p","o"],"properties":{"s":{"$ref":"#/components/schemas/RdfValue","description":"Subject"},"p":{"$ref":"#/components/schemas/RdfValue","description":"Predicate"},"o":{"$ref":"#/components/schemas/RdfValue","description":"Object"},"g":{"type":"string","description":"Named graph URI (optional)","example":"urn:graph:source"}}},"KnowledgeRequest":{"type":"object","description":"Knowledge graph core management request.\n\nOperations: list-kg-cores, get-kg-core, put-kg-core, delete-kg-core,\nload-kg-core, unload-kg-core\n","required":["operation"],"properties":{"operation":{"type":"string","enum":["list-kg-cores","get-kg-core","put-kg-core","delete-kg-core","load-kg-core","unload-kg-core"],"description":"Knowledge core operation:\n- `list-kg-cores`: List knowledge cores in the current workspace (resolved from token)\n- `get-kg-core`: Get knowledge core by ID\n- `put-kg-core`: Store triples and/or embeddings\n- `delete-kg-core`: Delete knowledge core by ID\n- `load-kg-core`: Load knowledge core into flow\n- `unload-kg-core`: Unload knowledge core from flow\n"},"id":{"type":"string","description":"Knowledge core ID (for get, put, delete, load, unload)","example":"core-123"},"flow":{"type":"string","description":"Flow ID (for load-kg-core)","example":"my-flow"},"collection":{"type":"string","description":"Collection identifier (for load-kg-core)","default":"default","example":"default"},"triples":{"type":"object","description":"Triples to store (for put-kg-core)","required":["metadata","triples"],"properties":{"metadata":{"type":"object","required":["id","collection"],"properties":{"id":{"type":"string","description":"Knowledge core ID","example":"core-123"},"collection":{"type":"string","description":"Collection identifier","example":"default"},"metadata":{"type":"array","description":"Metadata triples","items":{"$ref":"#/components/schemas/Triple"}}}},"triples":{"type":"array","description":"Knowledge triples","items":{"$ref":"#/components/schemas/Triple"}}}},"graph-embeddings":{"type":"object","description":"Graph embeddings to store (for put-kg-core)","required":["metadata","entities"],"properties":{"metadata":{"type":"object","required":["id","collection"],"properties":{"id":{"type":"string","description":"Knowledge core ID","example":"core-123"},"collection":{"type":"string","description":"Collection identifier","example":"default"},"metadata":{"type":"array","description":"Metadata triples","items":{"$ref":"#/components/schemas/Triple"}}}},"entities":{"type":"array","description":"Entity embeddings","items":{"type":"object","required":["entity","vectors"],"properties":{"entity":{"$ref":"#/components/schemas/RdfValue"},"vectors":{"type":"array","description":"Embedding vectors","items":{"type":"number"},"example":[0.1,0.2,0.3]}}}}}}}},"KnowledgeResponse":{"type":"object","description":"Knowledge service response","properties":{"ids":{"type":"array","description":"List of knowledge core IDs (returned by list-kg-cores)","items":{"type":"string"},"example":["core-123","core-456"]},"triples":{"type":"object","description":"Triples data (returned by get-kg-core, streamed)","properties":{"metadata":{"type":"object","required":["id","collection"],"properties":{"id":{"type":"string","description":"Knowledge core ID","example":"core-123"},"collection":{"type":"string","description":"Collection identifier","example":"default"},"metadata":{"type":"array","description":"Metadata triples","items":{"$ref":"#/components/schemas/Triple"}}}},"triples":{"type":"array","description":"Knowledge triples","items":{"$ref":"#/components/schemas/Triple"}}}},"graph-embeddings":{"type":"object","description":"Graph embeddings data (returned by get-kg-core, streamed)","properties":{"metadata":{"type":"object","required":["id","collection"],"properties":{"id":{"type":"string","description":"Knowledge core ID","example":"core-123"},"collection":{"type":"string","description":"Collection identifier","example":"default"},"metadata":{"type":"array","description":"Metadata triples","items":{"$ref":"#/components/schemas/Triple"}}}},"entities":{"type":"array","description":"Entity embeddings","items":{"type":"object","required":["entity","vectors"],"properties":{"entity":{"$ref":"#/components/schemas/RdfValue"},"vectors":{"type":"array","description":"Embedding vectors","items":{"type":"number"},"example":[0.1,0.2,0.3]}}}}}},"eos":{"type":"boolean","description":"End of stream marker (for streaming responses)","example":true}}},"CollectionRequest":{"type":"object","description":"Collection management request.\n\nOperations: list-collections, update-collection, delete-collection\n","required":["operation"],"properties":{"operation":{"type":"string","enum":["list-collections","update-collection","delete-collection"],"description":"Collection operation:\n- `list-collections`: List collections in the current workspace (resolved from token)\n- `update-collection`: Create or update collection metadata\n- `delete-collection`: Delete collection\n"},"collection":{"type":"string","description":"Collection identifier (for update, delete)","example":"research"},"timestamp":{"type":"string","description":"ISO timestamp","format":"date-time","example":"2024-01-15T10:30:00Z"},"name":{"type":"string","description":"Human-readable collection name (for update)","example":"Research Papers"},"description":{"type":"string","description":"Collection description (for update)","example":"Academic research papers on AI and ML"},"tags":{"type":"array","description":"Collection tags for organization (for update)","items":{"type":"string"},"example":["research","AI","academic"]},"tag-filter":{"type":"array","description":"Filter collections by tags (for list)","items":{"type":"string"},"example":["research"]},"limit":{"type":"integer","description":"Maximum number of results (for list)","default":0,"example":100}}},"CollectionResponse":{"type":"object","description":"Collection management response","properties":{"timestamp":{"type":"string","description":"ISO timestamp","format":"date-time","example":"2024-01-15T10:30:00Z"},"collections":{"type":"array","description":"List of collections (returned by list-collections)","items":{"type":"object","required":["collection"],"properties":{"collection":{"type":"string","description":"Collection identifier","example":"research"},"name":{"type":"string","description":"Human-readable collection name","example":"Research Papers"},"description":{"type":"string","description":"Collection description","example":"Academic research papers on AI and ML"},"tags":{"type":"array","description":"Collection tags","items":{"type":"string"},"example":["research","AI","academic"]}}}}}},"AgentRequest":{"type":"object","description":"Agent service request - conversational AI agent that can reason and take actions.\n","required":["question"],"properties":{"question":{"type":"string","description":"User question or prompt for the agent","example":"What is the capital of France?"},"state":{"type":"string","description":"Agent state for continuation (optional, for multi-turn)","example":"agent-state-12345"},"group":{"type":"array","description":"Group identifiers for collaborative agents (optional)","items":{"type":"string"},"example":["research-team"]},"history":{"type":"array","description":"Conversation history (optional, list of previous agent steps)","items":{"type":"object","properties":{"thought":{"type":"string","description":"Agent's reasoning","example":"I need to search for information about Paris"},"action":{"type":"string","description":"Action taken","example":"search"},"arguments":{"type":"object","description":"Action arguments","additionalProperties":{"type":"string"},"example":{"query":"capital of France"}},"observation":{"type":"string","description":"Result of the action","example":"Paris is the capital of France"}}}},"streaming":{"type":"boolean","description":"Enable streaming response delivery","default":false,"example":true}}},"Triple-2":{"type":"object","description":"RDF triple representing a subject-predicate-object statement in the knowledge graph,\noptionally scoped to a named graph.\n\nExample: (Person1) -[has name]-> (\"John Doe\")\n","properties":{"s":{"$ref":"#/components/schemas/RdfValue","description":"Subject - the entity the statement is about"},"p":{"$ref":"#/components/schemas/RdfValue","description":"Predicate - the property or relationship"},"o":{"$ref":"#/components/schemas/RdfValue","description":"Object - the value or target entity"},"g":{"type":"string","description":"Named graph URI (optional). When absent, the triple is in the default graph.\nWell-known graphs:\n- (empty/absent): Core knowledge facts\n- urn:graph:source: Extraction provenance\n- urn:graph:retrieval: Query-time explainability\n","example":"urn:graph:source"}},"required":["s","p","o"],"example":{"s":{"t":"i","i":"http://example.com/Person1"},"p":{"t":"i","i":"http://schema.org/name"},"o":{"t":"l","v":"John Doe"}}},"AgentResponse":{"type":"object","description":"Agent service response (streaming or legacy format)","properties":{"chunk-type":{"type":"string","description":"Type of streaming chunk (streaming mode only)","enum":["thought","action","observation","answer","final-answer","explain","error"],"example":"answer"},"content":{"type":"string","description":"Chunk content (streaming mode only)","example":"Paris is the capital of France."},"message_type":{"type":"string","description":"Message type - \"chunk\" for agent chunks, \"explain\" for explainability events","enum":["chunk","explain"],"example":"chunk"},"explain_id":{"type":"string","description":"Explainability node URI (for explain messages)","example":"urn:trustgraph:agent:abc123"},"explain_graph":{"type":"string","description":"Named graph containing the explainability data","example":"urn:graph:retrieval"},"explain_triples":{"type":"array","description":"Provenance triples for this explain event (inline, no follow-up query needed)","items":{"$ref":"#/components/schemas/Triple-2"}},"end-of-message":{"type":"boolean","description":"Current chunk type is complete (streaming mode)","default":false,"example":true},"end-of-dialog":{"type":"boolean","description":"Entire agent dialog is complete (streaming mode)","default":false,"example":true},"answer":{"type":"string","description":"Final answer (legacy non-streaming format)","example":"Paris is the capital of France."},"thought":{"type":"string","description":"Agent reasoning (legacy format)","example":"I should search for information about the capital of France."},"observation":{"type":"string","description":"Observation from actions (legacy format)","example":"Found information about Paris being the capital."},"error":{"type":"object","description":"Error details if request failed","properties":{"message":{"type":"string","description":"Error message","example":"Failed to process agent request"},"code":{"type":"string","description":"Error code","example":"AGENT_ERROR"}}}}},"DocumentRagRequest":{"type":"object","description":"Document RAG (Retrieval-Augmented Generation) query request.\nSearches document embeddings and generates answer using retrieved context.\n","required":["query"],"properties":{"query":{"type":"string","description":"User query or question","example":"What are the key findings in the research papers?"},"collection":{"type":"string","description":"Collection to search within","default":"default","example":"research"},"doc-limit":{"type":"integer","description":"Maximum number of documents to retrieve","default":20,"minimum":1,"maximum":100,"example":10},"streaming":{"type":"boolean","description":"Enable streaming response delivery","default":false,"example":true}}},"DocumentRagResponse":{"type":"object","description":"Document RAG response message","properties":{"message_type":{"type":"string","description":"Type of message - \"chunk\" for LLM response chunks, \"explain\" for explainability events","enum":["chunk","explain"],"example":"chunk"},"response":{"type":"string","description":"Generated response text (for chunk messages)","example":"Based on the policy documents, customers can return items within 30 days..."},"explain_id":{"type":"string","description":"Explainability node URI (for explain messages)","example":"urn:trustgraph:question:abc123"},"explain_graph":{"type":"string","description":"Named graph containing the explainability data","example":"urn:graph:retrieval"},"explain_triples":{"type":"array","description":"Provenance triples for this explain event (inline, no follow-up query needed)","items":{"$ref":"#/components/schemas/Triple-2"}},"end-of-stream":{"type":"boolean","description":"Indicates LLM response stream is complete","default":false,"example":true},"end_of_session":{"type":"boolean","description":"Indicates entire session is complete (all messages sent)","default":false,"example":true},"error":{"type":"object","description":"Error details if request failed","properties":{"message":{"type":"string","description":"Error message","example":"Failed to retrieve documents"},"type":{"type":"string","description":"Error type","example":"RETRIEVAL_ERROR"}}}}},"GraphRagRequest":{"type":"object","description":"Graph RAG (Retrieval-Augmented Generation) query request.\nSearches knowledge graph and generates answer using retrieved subgraph.\n","required":["query"],"properties":{"query":{"type":"string","description":"User query or question","example":"What connections exist between quantum physics and computer science?"},"collection":{"type":"string","description":"Collection to search within","default":"default","example":"research"},"entity-limit":{"type":"integer","description":"Maximum number of entities to retrieve","default":50,"minimum":1,"maximum":200,"example":30},"triple-limit":{"type":"integer","description":"Maximum number of triples to retrieve per entity","default":30,"minimum":1,"maximum":100,"example":20},"max-subgraph-size":{"type":"integer","description":"Maximum total subgraph size (triples)","default":1000,"minimum":10,"maximum":5000,"example":500},"max-path-length":{"type":"integer","description":"Maximum path length for graph traversal","default":2,"minimum":1,"maximum":5,"example":3},"streaming":{"type":"boolean","description":"Enable streaming response delivery","default":false,"example":true}}},"GraphRagResponse":{"type":"object","description":"Graph RAG response message","properties":{"message_type":{"type":"string","description":"Type of message - \"chunk\" for LLM response chunks, \"explain\" for explainability events","enum":["chunk","explain"],"example":"chunk"},"response":{"type":"string","description":"Generated response text (for chunk messages)","example":"Quantum physics and computer science intersect in quantum computing..."},"explain_id":{"type":"string","description":"Explainability node URI (for explain messages)","example":"urn:trustgraph:question:abc123"},"explain_graph":{"type":"string","description":"Named graph containing the explainability data","example":"urn:graph:retrieval"},"explain_triples":{"type":"array","description":"Provenance triples for this explain event (inline, no follow-up query needed)","items":{"$ref":"#/components/schemas/Triple-2"}},"end_of_stream":{"type":"boolean","description":"Indicates LLM response stream is complete","default":false,"example":true},"end_of_session":{"type":"boolean","description":"Indicates entire session is complete (all messages sent)","default":false,"example":true},"error":{"type":"object","description":"Error details if request failed","properties":{"message":{"type":"string","description":"Error message","example":"Failed to retrieve graph data"},"type":{"type":"string","description":"Error type","example":"GRAPH_ERROR"}}}}},"TextCompletionRequest":{"type":"object","description":"Text completion request - direct LLM completion without RAG.\n","required":["system","prompt"],"properties":{"system":{"type":"string","description":"System prompt that sets behavior and context for the LLM","example":"You are a helpful assistant that provides concise answers."},"prompt":{"type":"string","description":"User prompt or question","example":"Explain the concept of recursion in programming."},"streaming":{"type":"boolean","description":"Enable streaming response delivery","default":false,"example":true}}},"TextCompletionResponse":{"type":"object","description":"Text completion response","required":["response"],"properties":{"response":{"type":"string","description":"Generated text response","example":"Recursion is a programming technique where a function calls itself..."},"in-token":{"type":"integer","description":"Number of input tokens consumed","example":45},"out-token":{"type":"integer","description":"Number of output tokens generated","example":128},"model":{"type":"string","description":"Model used for completion","example":"gpt-4"},"end-of-stream":{"type":"boolean","description":"Indicates streaming is complete (streaming mode)","default":false,"example":true}}},"PromptRequest":{"type":"object","description":"Prompt service request - template-based text generation.\n\nExecute a stored prompt template with variable substitution.\n","required":["id"],"properties":{"id":{"type":"string","description":"Prompt template ID (stored in config)","example":"summarize-document"},"terms":{"type":"object","description":"Template variables as key-value pairs (values are JSON strings)","additionalProperties":{"type":"string"},"example":{"document":"\"This is the document text to summarize...\"","max_length":"\"200\""}},"variables":{"type":"object","description":"Alternative to terms - variables as native JSON values (auto-converted)","additionalProperties":{},"example":{"document":"This is the document text to summarize...","max_length":200}},"streaming":{"type":"boolean","description":"Enable streaming response delivery","default":false,"example":true}}},"PromptResponse":{"type":"object","description":"Prompt service response","properties":{"text":{"type":"string","description":"Generated text response","example":"This document discusses quantum computing and its applications..."},"object":{"type":"string","description":"Structured response (JSON string) if prompt produces objects","example":"{\"summary\": \"Quantum computing overview\", \"key_points\": [...]}"},"end-of-stream":{"type":"boolean","description":"Indicates streaming is complete (streaming mode)","default":false,"example":true}}},"EmbeddingsRequest":{"type":"object","description":"Embeddings request - convert text to vector embedding.\n","required":["text"],"properties":{"text":{"type":"string","description":"Text to convert to embedding vector","example":"Quantum computing uses quantum mechanics principles for computation."}}},"EmbeddingsResponse":{"type":"object","description":"Embeddings response","required":["vectors"],"properties":{"vectors":{"type":"array","description":"Embedding vector (array of floats)","items":{"type":"number"},"example":[0.023,-0.142,0.089,0.234,-0.067,0.156]}}},"McpToolRequest":{"type":"object","description":"MCP tool request - execute Model Context Protocol tool.\n","required":["name"],"properties":{"name":{"type":"string","description":"Tool name to execute","example":"search"},"parameters":{"type":"object","description":"Tool parameters (JSON object, auto-converted to string internally)","additionalProperties":{},"example":{"query":"quantum computing","limit":10}}}},"McpToolResponse":{"type":"object","description":"MCP tool response","properties":{"text":{"type":"string","description":"Text response from tool","example":"Found 10 results for quantum computing..."},"object":{"type":"object","description":"Structured response from tool (JSON object)","additionalProperties":{},"example":{"results":[{"title":"Introduction to Quantum Computing","url":"https://example.com/qc-intro"}]}}}},"TriplesQueryRequest":{"type":"object","description":"Triples query request - query knowledge graph by subject/predicate/object pattern.\n","properties":{"s":{"$ref":"#/components/schemas/RdfValue","description":"Subject filter (optional)"},"p":{"$ref":"#/components/schemas/RdfValue","description":"Predicate filter (optional)"},"o":{"$ref":"#/components/schemas/RdfValue","description":"Object filter (optional)"},"limit":{"type":"integer","description":"Maximum number of triples to return","default":10000,"minimum":1,"maximum":100000,"example":100},"collection":{"type":"string","description":"Collection to query","default":"default","example":"research"},"g":{"type":"string","description":"Named graph filter (optional).\n- Omitted/null: all graphs\n- Empty string: default graph only\n- URI string: specific named graph (e.g., urn:graph:source, urn:graph:retrieval)\n","example":"urn:graph:source"},"streaming":{"type":"boolean","description":"Enable streaming response delivery","default":false,"example":true},"batch-size":{"type":"integer","description":"Number of triples per streaming batch","default":20,"minimum":1,"maximum":1000,"example":50}}},"TriplesQueryResponse":{"type":"object","description":"Triples query response","required":["response"],"properties":{"response":{"type":"array","description":"Matching triples","items":{"$ref":"#/components/schemas/Triple"}}}},"RowsQueryRequest":{"type":"object","description":"Rows query request - GraphQL query over structured data.\n","required":["query"],"properties":{"query":{"type":"string","description":"GraphQL query string","example":"query GetPerson($id: ID!) {\n person(id: $id) {\n name\n email\n knows {\n name\n }\n }\n}\n"},"variables":{"type":"object","description":"GraphQL query variables","additionalProperties":{"type":"string"},"example":{"id":"https://example.com/person/alice"}},"operation-name":{"type":"string","description":"Operation name (for multi-operation documents)","example":"GetPerson"},"collection":{"type":"string","description":"Collection to query","default":"default","example":"research"}}},"RowsQueryResponse":{"type":"object","description":"Rows query response (GraphQL format)","properties":{"data":{"description":"GraphQL response data (JSON object or null)","oneOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"example":{"person":{"name":"Alice","email":"alice@example.com","knows":[{"name":"Bob"},{"name":"Carol"}]}}},"errors":{"type":"array","description":"GraphQL field-level errors","items":{"type":"object","properties":{"message":{"type":"string","description":"Error message","example":"Cannot query field 'age' on type 'Person'"},"path":{"type":"array","description":"Path to error location","items":{"type":"string"},"example":["person","age"]},"extensions":{"type":"object","description":"Additional error metadata","additionalProperties":{"type":"string"}}}}},"extensions":{"type":"object","description":"Query metadata (execution time, etc.)","additionalProperties":{"type":"string"},"example":{"execution_time_ms":"42"}},"error":{"type":"object","description":"System-level error (connection, timeout, etc.)","properties":{"type":{"type":"string","example":"TIMEOUT_ERROR"},"message":{"type":"string","example":"Query execution timeout"}}}}},"NlpQueryRequest":{"type":"object","description":"NLP query request - convert natural language question to structured query.\n","required":["question"],"properties":{"question":{"type":"string","description":"Natural language question","example":"Who does Alice know that works in engineering?"},"max-results":{"type":"integer","description":"Maximum results to return when query is executed","default":100,"minimum":1,"maximum":10000,"example":50}}},"NlpQueryResponse":{"type":"object","description":"NLP query response","required":["graphql-query","variables"],"properties":{"graphql-query":{"type":"string","description":"Generated GraphQL query","example":"query GetConnections($person: ID!) {\n person(id: $person) {\n knows {\n name\n worksFor { department }\n }\n }\n}\n"},"variables":{"type":"object","description":"Query variables","additionalProperties":{"type":"string"},"example":{"person":"https://example.com/person/alice"}},"detected-schemas":{"type":"array","description":"Detected schema types used in query","items":{"type":"string"},"example":["Person","Organization"]},"confidence":{"type":"number","description":"Confidence score for query generation (0.0-1.0)","minimum":0,"maximum":1,"example":0.87},"error":{"type":"object","description":"Error if query generation failed","properties":{"type":{"type":"string","example":"PARSE_ERROR"},"message":{"type":"string","example":"Could not understand question structure"}}}}},"StructuredQueryRequest":{"type":"object","description":"Structured query request - natural language question with automatic execution.\n\nCombines NLP query generation and execution in one call.\n","required":["question"],"properties":{"question":{"type":"string","description":"Natural language question","example":"Who does Alice know that works in engineering?"},"collection":{"type":"string","description":"Collection to query","default":"default","example":"research"}}},"StructuredQueryResponse":{"type":"object","description":"Structured query response","properties":{"data":{"description":"Query results (JSON object or null)","oneOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"example":{"person":{"name":"Alice","knows":[{"name":"Bob","worksFor":{"name":"Acme Corp","department":"Engineering"}},{"name":"Carol","worksFor":{"name":"Tech Inc","department":"Engineering"}}]}}},"errors":{"type":"array","description":"Query errors (array of error strings)","items":{"type":"string"},"example":["Could not resolve field 'age' on type 'Person'"]},"error":{"type":"object","description":"System-level error","properties":{"type":{"type":"string","example":"QUERY_GENERATION_ERROR"},"message":{"type":"string","example":"Failed to generate query from question"}}}}},"StructuredDiagRequest":{"type":"object","description":"Structured data diagnosis request - analyze and understand structured data formats.\n\nOperations: detect-type, generate-descriptor, diagnose, schema-selection\n","required":["operation","sample"],"properties":{"operation":{"type":"string","enum":["detect-type","generate-descriptor","diagnose","schema-selection"],"description":"Diagnosis operation:\n- `detect-type`: Identify data format (CSV, JSON, XML)\n- `generate-descriptor`: Create schema descriptor for data\n- `diagnose`: Full analysis (detect + generate descriptor)\n- `schema-selection`: Find matching schemas for data\n"},"sample":{"type":"string","description":"Data sample to analyze (text content)","example":"name,age,email\nAlice,30,alice@example.com\nBob,25,bob@example.com\n"},"type":{"type":"string","description":"Data type (required for generate-descriptor)","enum":["csv","json","xml"],"example":"csv"},"schema-name":{"type":"string","description":"Target schema name for descriptor generation (optional)","example":"person-records"},"options":{"type":"object","description":"Format-specific options (e.g., CSV delimiter)","additionalProperties":{"type":"string"},"example":{"delimiter":",","has_header":"true"}}}},"StructuredDiagResponse":{"type":"object","description":"Structured data diagnosis response","required":["operation"],"properties":{"operation":{"type":"string","description":"Operation that was performed","example":"diagnose"},"detected-type":{"type":"string","description":"Detected data format (for detect-type/diagnose)","enum":["csv","json","xml"],"example":"csv"},"confidence":{"type":"number","description":"Detection confidence score (0.0-1.0)","minimum":0,"maximum":1,"example":0.95},"descriptor":{"type":"object","description":"Generated schema descriptor (for generate-descriptor/diagnose)","additionalProperties":{},"example":{"schema_name":"person-records","type":"csv","fields":[{"name":"name","type":"string"},{"name":"age","type":"integer"},{"name":"email","type":"string"}]}},"metadata":{"type":"object","description":"Additional analysis metadata","additionalProperties":{"type":"string"},"example":{"field_count":"3","record_count":"2","has_header":"true"}},"schema-matches":{"type":"array","description":"Matching schema IDs (for schema-selection)","items":{"type":"string"},"example":["person-schema-v1","contact-schema-v2"]}}},"GraphEmbeddingsQueryRequest":{"type":"object","description":"Graph embeddings query request - find similar entities by vector similarity.\n","required":["vectors"],"properties":{"vectors":{"type":"array","description":"Query embedding vector","items":{"type":"number"},"example":[0.023,-0.142,0.089,0.234,-0.067,0.156]},"limit":{"type":"integer","description":"Maximum number of entities to return","default":10,"minimum":1,"maximum":1000,"example":20},"collection":{"type":"string","description":"Collection to search","default":"default","example":"research"}}},"GraphEmbeddingsQueryResponse":{"type":"object","description":"Graph embeddings query response with matching entities and similarity scores","properties":{"entities":{"type":"array","description":"Matching graph entities with similarity scores","items":{"type":"object","properties":{"entity":{"$ref":"#/components/schemas/RdfValue","description":"Matching graph entity"},"score":{"type":"number","description":"Similarity score (higher is more similar)","example":0.92}}},"example":[{"entity":{"t":"i","i":"https://example.com/person/alice"},"score":0.95},{"entity":{"t":"i","i":"https://example.com/concept/quantum"},"score":0.82}]}}},"DocumentEmbeddingsQueryRequest":{"type":"object","description":"Document embeddings query request - find similar documents by vector similarity.\n","required":["vectors"],"properties":{"vectors":{"type":"array","description":"Query embedding vector","items":{"type":"number"},"example":[0.023,-0.142,0.089,0.234,-0.067,0.156]},"limit":{"type":"integer","description":"Maximum number of document chunks to return","default":10,"minimum":1,"maximum":1000,"example":20},"collection":{"type":"string","description":"Collection to search","default":"default","example":"research"}}},"DocumentEmbeddingsQueryResponse":{"type":"object","description":"Document embeddings query response with matching chunks and similarity scores","properties":{"chunks":{"type":"array","description":"Matching document chunks with similarity scores","items":{"type":"object","properties":{"chunk_id":{"type":"string","description":"Chunk identifier URI","example":"urn:trustgraph:chunk:abc123"},"score":{"type":"number","description":"Similarity score (higher is more similar)","example":0.89}}},"example":[{"chunk_id":"urn:trustgraph:chunk:abc123","score":0.95},{"chunk_id":"urn:trustgraph:chunk:def456","score":0.82}]}}},"RowEmbeddingsQueryRequest":{"type":"object","description":"Row embeddings query request - find similar rows by vector similarity on indexed fields.\nEnables semantic/fuzzy matching on structured data.\n","required":["vectors","schema_name"],"properties":{"vectors":{"type":"array","description":"Query embedding vector","items":{"type":"number"},"example":[0.023,-0.142,0.089,0.234,-0.067,0.156]},"schema_name":{"type":"string","description":"Schema name to search within","example":"customers"},"index_name":{"type":"string","description":"Optional index name to filter search to specific index","example":"full_name"},"limit":{"type":"integer","description":"Maximum number of matches to return","default":10,"minimum":1,"maximum":1000,"example":20},"collection":{"type":"string","description":"Collection to search","default":"default","example":"sales"}}},"RowEmbeddingsQueryResponse":{"type":"object","description":"Row embeddings query response with matching row index information","properties":{"error":{"type":"object","description":"Error information if query failed","properties":{"type":{"type":"string","description":"Error type identifier","example":"row-embeddings-query-error"},"message":{"type":"string","description":"Human-readable error message","example":"Schema not found"}}},"matches":{"type":"array","description":"List of matching row index entries with similarity scores","items":{"type":"object","properties":{"index_name":{"type":"string","description":"Name of the indexed field(s)","example":"full_name"},"index_value":{"type":"array","description":"Values of the indexed fields for this row","items":{"type":"string"},"example":["John","Smith"]},"text":{"type":"string","description":"The text that was embedded for this index entry","example":"John Smith"},"score":{"type":"number","description":"Similarity score (higher is more similar)","example":0.89}}}}},"example":{"matches":[{"index_name":"full_name","index_value":["John","Smith"],"text":"John Smith","score":0.95},{"index_name":"full_name","index_value":["Jon","Smythe"],"text":"Jon Smythe","score":0.82},{"index_name":"full_name","index_value":["Jonathan","Schmidt"],"text":"Jonathan Schmidt","score":0.76}]}},"TextLoadRequest":{"type":"object","description":"Text load request - load text document into processing pipeline.\n\nFire-and-forget operation (no response).\n","required":["text"],"properties":{"text":{"type":"string","description":"Text content, either raw text or base64 encoded for compatibility with older clients","example":"VGhpcyBpcyB0aGUgZG9jdW1lbnQgdGV4dC4uLg=="},"id":{"type":"string","description":"Document identifier","example":"doc-123"},"collection":{"type":"string","description":"Collection for document","default":"default","example":"research"},"charset":{"type":"string","description":"Text character encoding","default":"utf-8","example":"utf-8"},"metadata":{"type":"array","description":"Document metadata as RDF triples","items":{"$ref":"#/components/schemas/Triple"}}}},"DocumentLoadRequest":{"type":"object","description":"Document load request - load binary document (PDF, etc.) into processing pipeline.\n\nFire-and-forget operation (no response).\n","required":["data"],"properties":{"data":{"type":"string","description":"Document data (base64 encoded)","format":"byte","example":"JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL..."},"id":{"type":"string","description":"Document identifier","example":"doc-456"},"collection":{"type":"string","description":"Collection for document","default":"default","example":"research"},"metadata":{"type":"array","description":"Document metadata as RDF triples","items":{"$ref":"#/components/schemas/Triple"}}}}},"responses":{"Unauthorized":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized"}}}}}},"Error":{"description":"Error response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"oneOf":[{"type":"string","description":"Simple error message"},{"$ref":"#/components/schemas/ErrorObject","description":"Structured error with type and message"}]}}},"examples":{"simpleError":{"summary":"Simple error message","value":{"error":"Invalid flow ID"}},"structuredError":{"summary":"Structured error","value":{"error":{"type":"gateway-error","message":"Timeout"}}}}}}}}}}},"searchIndex":{"store":["section/Overview","section/Authentication","section/Service-Tiers","section/Field-Naming","section/Error-Responses","tag/Config","tag/Config/operation/configService","tag/Flow","tag/Flow/operation/flowService","tag/Librarian","tag/Librarian/operation/librarianService","tag/Knowledge","tag/Knowledge/operation/knowledgeService","tag/Collection","tag/Collection/operation/collectionManagementService","tag/Flow-Services","tag/Flow-Services/operation/agentService","tag/Flow-Services/operation/documentRagService","tag/Flow-Services/operation/graphRagService","tag/Flow-Services/operation/textCompletionService","tag/Flow-Services/operation/promptService","tag/Flow-Services/operation/embeddingsService","tag/Flow-Services/operation/mcpToolService","tag/Flow-Services/operation/triplesQueryService","tag/Flow-Services/operation/rowsQueryService","tag/Flow-Services/operation/nlpQueryService","tag/Flow-Services/operation/structuredQueryService","tag/Flow-Services/operation/structuredDiagService","tag/Flow-Services/operation/graphEmbeddingsQueryService","tag/Flow-Services/operation/documentEmbeddingsQueryService","tag/Flow-Services/operation/rowEmbeddingsQueryService","tag/Flow-Services/operation/textLoadService","tag/Flow-Services/operation/documentLoadService","tag/Flow-Services/operation/sparqlQueryService","tag/ImportExport","tag/ImportExport/operation/documentStream","tag/ImportExport/operation/importCore","tag/ImportExport/operation/exportCore","tag/WebSocket","tag/WebSocket/operation/websocketConnection","tag/Metrics","tag/Metrics/operation/getMetrics","tag/Metrics/operation/getMetricsPath"],"index":{"version":"2.3.9","fields":["title","description"],"fieldVectors":[["title/0",[0,0.985]],["description/0",[1,2.789,2,2.373,3,3.058,4,0.367,5,2.789,6,0.474,7,3.395,8,2.789,9,1.672,10,0.536,11,1.162,12,1.8,13,0.557,14,0.96,15,2.373,16,1.922,17,0.899,18,2.565,19,1.922,20,1.399,21,1.8,22,1.273,23,0.899,24,2.373,25,3.846,26,2.205,27,1.091,28,0.68,29,1.091,30,1.688,31,1.8,32,2.789,33,3.395,34,2.373]],["title/1",[10,0.587]],["description/1",[4,0.348,6,0.34,7,3.539,10,0.683,35,3.898,36,2.673,37,5.776,38,0.867,39,0.928,40,4.327,41,4.009,42,3.187,43,1.371,44,3.187,45,4.723,46,4.723,47,3.187,48,3.187,49,4.009,50,0.763,51,0.709,52,2.907,53,3.187,54,4.723,55,4.723,56,1.371]],["title/2",[6,0.315,57,4.38]],["description/2",[1,2.134,3,3.191,4,0.393,5,2.134,6,0.435,7,2.598,8,2.134,9,1.577,10,0.637,11,0.889,12,1.377,13,0.572,14,1.002,16,1.47,17,0.688,18,1.963,19,1.47,22,1.069,23,0.688,27,0.835,28,0.52,29,0.835,31,1.377,36,1.963,39,0.658,43,1.373,47,2.34,48,2.34,50,0.56,51,0.867,58,3.467,59,2.598,60,2.943,61,3.191,62,0.644,63,2.34,64,1.761,65,3.467,66,1.963,67,3.467,68,1.816,69,1.963,70,2.134,71,0.735,72,0.835,73,1.213,74,2.943,75,1.377,76,1.213,77,1.573,78,0.946,79,0.56,80,3.467,81,3.467,82,2.134,83,2.598,84,1.963,85,2.943,86,2.598,87,2.598,88,0.376,89,1.963,90,2.943,91,2.943,92,3.467,93,3.467,94,1.573,95,2.34,96,2.34,97,2.943,98,2.943,99,2.943]],["title/3",[100,2.294,101,2.479]],["description/3",[79,0.883,100,2.864,102,2.481,103,5.469,104,5.469,105,5.469,106,4.642,107,2.864]],["title/4",[108,2.294,109,1.055]],["description/4",[4,0.383,66,2.982,102,2.39,108,3.229,110,1.191,111,1.351,112,1.842,113,4.472,114,2.39,115,4.472]],["title/5",[68,2.598]],["description/5",[9,1.534,11,1.442,12,2.233]],["title/6",[6,0.282,11,1.006,12,1.557]],["description/6",[4,0.392,6,0.424,9,1.413,10,0.381,11,0.826,12,2.538,13,0.663,21,1.28,24,2.354,28,0.675,34,1.688,38,0.484,39,0.779,44,2.175,50,0.52,51,0.484,60,2.735,64,1.675,68,2.712,69,1.824,79,0.726,84,3.336,107,1.688,112,2.134,116,2.735,117,2.188,118,3.816,119,1.983,120,1.983,121,1.127,122,2.354,123,5.178,124,2.767,125,0.995,126,3.223,127,1.983,128,1.983,129,1.568,130,3.034,131,1.028,132,3.781,133,3.223,134,1.907,135,2.735,136,2.414,137,3.223,138,1.983,139,3.223,140,3.223,141,3.223,142,1.824,143,1.688,144,1.568,145,1.824,146,2.414,147,2.735,148,2.735,149,2.735,150,2.175]],["title/7",[13,0.491]],["description/7",[9,1.517,11,1.426,13,0.55,61,3.752,69,3.147]],["title/8",[9,0.885,11,0.832,13,0.321,61,2.188,69,1.835]],["description/8",[4,0.38,6,0.41,9,1.344,10,0.348,11,0.754,12,1.956,13,0.667,24,2.981,28,0.739,34,2.579,38,0.441,39,0.409,43,0.853,48,1.984,50,0.475,51,0.441,56,0.853,64,2.12,68,2.206,69,3.694,79,0.68,101,1.664,112,1.028,117,1.43,120,1.809,121,1.028,122,2.206,125,0.908,127,2.593,128,1.809,129,2.396,130,2.843,131,1.239,132,3.842,134,1.247,143,2.579,145,1.664,146,2.202,147,2.495,148,2.495,149,2.495,150,1.984,151,2.94,152,1.984,153,2.495,154,1.664,155,4.18,156,4.213,157,0.966,158,2.94,159,2.94,160,0.966,161,1.664,162,1.095,163,2.94,164,1.664,165,2.94,166,2.495,167,2.94,168,5.378,169,2.94,170,2.202,171,2.94,172,2.202,173,2.94,174,2.202,175,2.495,176,2.94,177,1.984,178,2.94,179,2.495,180,2.202,181,2.94,182,2.94,183,1.984,184,1.095,185,2.495,186,2.94,187,2.202,188,2.94]],["title/9",[70,3.053]],["description/9",[9,1.526,11,1.434,16,2.371,71,1.185]],["title/10",[9,0.969,11,0.91,16,1.505,71,0.752]],["description/10",[4,0.38,6,0.347,9,1.315,10,0.422,11,0.914,13,0.477,16,2.776,28,0.723,38,0.535,39,0.496,40,2.672,50,0.576,51,0.535,70,2.195,71,1.445,76,1.685,78,1.756,88,0.387,107,1.867,120,2.195,122,2.859,152,2.406,166,3.027,172,2.672,189,4.091,190,3.611,191,1.867,192,2.672,193,4.82,194,2.406,195,2.966,196,4.82,197,3.253,198,3.566,199,2.672,200,2.672,201,3.253,202,3.566,203,4.09,204,3.027,205,2.406,206,1.247,207,3.566,208,1.618,209,3.566,210,1.172,211,3.566,212,2.672,213,2.672,214,2.406,215,3.566,216,3.566,217,3.566,218,2.672,219,3.566]],["title/11",[14,1.051]],["description/11",[9,1.517,11,1.426,14,1.178,72,1.339,73,1.944]],["title/12",[9,0.885,11,0.832,14,0.687,72,0.781,73,1.134]],["description/12",[4,0.375,6,0.215,9,0.817,10,0.354,11,0.767,13,0.422,14,1.372,15,2.234,21,1.188,22,1.347,24,1.567,27,1.381,28,0.746,29,1.477,30,1.115,38,0.449,39,0.416,50,0.689,51,0.746,53,2.019,62,0.792,72,1.381,73,2.313,75,1.975,76,1.046,86,2.242,88,0.325,94,1.358,109,1.028,110,0.965,114,2.256,120,1.842,122,1.567,125,0.924,127,1.842,128,1.842,130,2.879,131,0.847,134,1.809,142,1.694,153,2.54,154,1.694,157,0.983,160,0.983,177,2.019,184,1.115,190,3.197,192,2.242,194,2.019,208,2.46,220,2.992,221,2.54,222,1.694,223,2.992,224,1.269,225,1.842,226,2.992,227,1.358,228,4.267,229,3.197,230,1.975,231,1.456,232,2.076,233,2.242,234,3.622,235,2.54,236,2.992,237,2.992,238,2.992,239,2.992,240,2.992,241,4.267,242,2.992,243,2.992,244,2.54,245,1.358,246,1.694,247,1.188,248,2.54,249,2.992]],["title/13",[75,1.97]],["description/13",[9,1.526,11,1.434,75,2.22,76,1.955]],["title/14",[9,0.969,11,0.91,75,1.41,76,1.241]],["description/14",[4,0.38,6,0.259,9,0.98,10,0.425,11,0.921,14,1.161,27,1.166,28,0.727,38,0.539,39,0.5,50,0.782,51,0.88,62,0.667,70,2.21,71,1.161,73,1.694,75,2.71,76,2.141,101,3.101,110,0.812,120,2.21,122,1.881,127,2.981,128,2.981,130,3.268,142,2.741,154,2.741,183,2.424,184,1.338,190,2.691,194,3.268,195,2.981,206,1.256,208,2.197,210,1.18,221,3.048,227,1.629,244,3.048,250,3.591,251,2.424,252,3.591,253,3.591,254,3.591,255,5.479,256,3.048,257,3.591,258,2.033,259,1.426,260,3.591,261,2.691,262,3.048,263,2.21,264,3.591,265,3.048,266,3.591]],["title/15",[6,0.315,13,0.433]],["description/15",[6,0.394,13,0.541,17,1.086,18,3.095,62,1.015,88,0.593,131,1.086,267,5.469]],["title/16",[4,0.166,6,0.215,18,1.689,82,1.837,268,2.236,269,2.014]],["description/16",[0,0.584,2,2.206,4,0.39,6,0.303,8,1.809,10,0.348,13,0.291,17,0.584,18,2.385,21,1.956,23,0.584,28,0.441,29,0.708,31,1.673,38,0.441,39,0.409,50,0.475,51,0.441,62,0.546,77,1.334,78,0.802,79,0.475,82,3.504,108,2.206,109,1.371,111,0.754,112,1.028,114,1.334,117,1.43,131,0.584,172,2.202,184,1.569,199,2.202,205,1.984,210,0.966,225,1.809,227,1.334,230,2.261,232,1.43,245,2.234,246,1.664,247,1.167,251,1.984,259,1.167,268,4.029,269,3.629,270,2.593,271,2.787,272,4.213,273,5.028,274,1.984,275,1.984,276,2.94,277,4.565,278,2.495,279,2.94,280,3.31,281,1.334,282,2.202,283,2.94,284,4.924,285,4.213,286,4.18,287,2.94,288,1.334,289,4.924,290,2.495,291,2.495,292,2.94,293,2.94,294,2.94,295,5.378,296,2.202,297,1.984,298,2.202,299,2.202,300,2.94,301,2.202,302,2.495,303,2.94,304,2.94,305,2.94,306,2.94,307,2.202,308,1.539,309,2.94,310,2.94,311,2.495,312,2.495]],["title/17",[4,0.166,19,1.266,71,0.903,125,0.922,313,0.98]],["description/17",[0,0.59,2,1.558,4,0.377,6,0.214,10,0.352,12,1.181,13,0.294,14,0.63,17,0.59,19,1.802,21,1.181,22,1.222,23,0.59,28,0.446,29,0.716,31,1.687,36,1.684,38,0.446,39,0.414,43,0.863,50,0.48,51,0.446,62,0.552,64,1.108,71,1.37,72,0.716,75,1.687,78,0.812,79,0.686,88,0.586,106,3.606,109,1.023,110,0.672,114,2.249,119,1.831,124,1.831,125,1.766,131,0.59,144,1.447,157,1.396,160,1.396,161,1.684,162,1.108,191,1.558,205,2.867,206,1.04,230,2.147,231,1.447,232,1.447,245,2.249,246,1.684,247,1.968,261,2.229,280,3.52,288,1.35,296,3.183,297,2.007,298,2.229,299,3.183,308,1.558,313,1.776,314,2.525,315,1.684,316,1.831,317,2.225,318,1.684,319,2.068,320,2.225,321,2.975,322,3.606,323,2.229,324,2.975,325,2.007,326,2.007,327,2.007,328,1.261,329,1.447,330,2.007,331,2.229,332,2.229,333,2.525,334,2.525,335,2.525,336,2.525,337,2.525,338,2.007,339,2.229,340,2.525,341,2.975,342,2.007,343,2.525,344,2.525,345,2.229,346,2.229,347,2.229,348,2.975,349,2.525,350,2.975]],["title/18",[4,0.154,14,0.586,19,1.172,72,0.971,125,0.854,313,0.908]],["description/18",[0,0.495,2,1.306,4,0.379,6,0.18,10,0.295,13,0.247,14,0.949,17,0.495,19,1.584,21,0.991,22,0.564,23,0.741,28,0.374,29,0.9,30,2.082,31,1.975,36,1.412,38,0.374,39,0.347,50,0.403,51,0.374,56,1.443,59,1.869,62,0.693,64,0.929,72,1.467,77,1.132,78,0.681,79,0.723,88,0.578,109,0.9,110,0.564,114,2.032,119,1.535,125,1.535,131,0.495,144,1.214,152,1.683,157,1.227,160,1.471,161,2.814,162,0.929,164,2.534,191,1.306,205,2.521,206,0.872,210,0.819,230,1.975,231,1.214,232,1.818,245,1.132,246,1.412,247,1.778,258,2.534,261,1.869,269,2.521,270,1.535,280,3.277,288,1.132,296,2.799,297,1.683,298,1.869,299,2.799,308,1.306,313,1.749,314,2.117,315,2.114,316,1.535,320,2.345,328,1.058,329,1.214,330,1.683,331,1.869,332,1.869,333,2.117,334,2.117,335,2.117,336,2.117,337,2.117,338,1.683,339,1.869,340,2.117,342,1.683,343,2.117,347,2.799,351,1.483,352,4.972,353,2.494,354,2.117,355,2.521,356,2.494,357,3.171,358,2.299,359,2.117,360,3.735,361,2.494,362,1.869,363,2.494,364,3.735,365,2.494,366,2.494,367,2.494,368,2.494,369,2.494,370,2.494,371,2.494,372,2.494,373,2.117,374,2.494,375,2.494,376,2.494,377,2.494,378,2.494,379,2.494,380,2.494,381,2.494,382,2.494,383,0.991,384,2.494,385,3.735,386,2.494,387,2.494,388,2.494,389,2.494,390,1.683,391,2.494,392,1.535,393,2.494]],["title/19",[4,0.166,20,0.922,21,1.185,313,0.98,320,1.563,394,2.236]],["description/19",[0,0.59,2,1.558,4,0.392,6,0.214,8,1.831,10,0.352,13,0.294,14,1.051,17,0.59,20,1.312,21,1.968,23,0.984,28,0.446,31,1.968,38,0.446,39,0.827,50,0.48,51,0.446,62,0.552,71,0.63,72,0.716,79,0.923,83,2.229,84,3.237,85,2.525,102,1.35,109,1.302,110,0.672,111,0.763,114,2.249,117,1.447,118,2.525,121,1.891,124,3.051,125,0.919,131,0.59,144,2.068,164,1.684,191,1.558,200,2.229,218,2.229,230,1.968,231,1.447,232,1.447,246,1.684,247,1.687,263,1.831,269,2.007,271,1.684,288,1.35,297,2.007,308,1.558,313,1.954,315,1.684,320,2.596,322,2.525,330,2.007,338,2.867,354,2.525,390,2.007,394,3.183,395,2.975,396,2.525,397,2.975,398,2.975,399,2.229,400,2.525,401,2.975,402,2.975,403,2.975,404,2.007,405,2.975,406,2.975,407,2.525,408,2.525,409,2.975,410,2.525,411,2.975,412,2.229,413,1.684,414,2.525,415,2.975,416,1.35,417,2.975,418,2.975,419,2.975,420,3.606,421,2.975,422,2.975,423,2.975]],["title/20",[4,0.181,6,0.233,84,1.835,313,1.065,424,3.243]],["description/20",[0,0.575,4,0.396,6,0.385,10,0.343,12,1.151,13,0.287,17,0.575,20,1.92,23,0.575,27,0.698,28,0.435,30,1.079,36,1.64,38,0.435,39,0.403,43,0.841,50,0.468,51,0.435,52,2.566,56,1.21,62,0.538,63,1.955,68,1.517,71,1.2,77,1.314,79,0.468,84,3.683,100,2.183,102,2.424,109,1.004,112,1.013,121,1.708,131,0.575,134,2.071,136,4.241,150,1.955,157,0.952,160,0.952,183,1.955,208,1.314,210,0.952,218,3.124,230,1.656,231,1.41,233,2.171,247,1.151,281,1.314,288,1.892,320,1.517,383,1.151,425,1.517,426,4.099,427,4.884,428,2.897,429,2.897,430,4.169,431,2.897,432,2.6,433,1.892,434,2.897,435,2.897,436,1.64,437,4.169,438,4.884,439,2.459,440,2.459,441,2.459,442,4.169,443,4.169,444,4.169,445,2.897,446,2.171,447,2.459,448,2.459,449,2.459,450,2.171,451,2.897,452,2.897]],["title/21",[4,0.181,20,1.001,22,0.733,224,1.375,268,2.429]],["description/21",[0,0.654,1,2.029,4,0.386,6,0.329,10,0.39,13,0.326,15,1.726,17,0.654,19,1.398,20,1.747,22,1.343,23,0.654,26,1.604,28,0.685,38,0.495,39,0.459,43,1.326,50,0.532,51,0.495,62,0.612,66,1.866,71,0.968,78,0.9,79,0.846,88,0.495,95,2.225,96,2.225,121,1.153,125,1.018,131,0.654,138,3.226,143,1.726,206,1.153,224,2.52,251,2.225,281,1.496,288,1.496,308,1.726,317,2.745,318,3.203,319,2.891,325,3.537,351,1.309,383,1.309,392,2.029,413,1.866,449,2.798,450,2.47,453,3.297,454,3.297,455,3.297,456,2.798,457,2.798,458,2.225,459,4.568,460,1.726,461,3.297,462,2.029,463,2.225,464,1.604,465,3.297,466,2.798,467,3.297,468,5.942,469,3.297,470,3.297,471,4.568,472,3.297,473,3.297,474,3.297,475,3.297,476,3.297,477,2.798,478,2.029,479,2.798,480,3.297]],["title/22",[4,0.143,31,1.022,138,1.584,425,1.348,481,2.185,482,2.865,483,1.584]],["description/22",[0,0.547,1,2.474,2,1.442,4,0.387,6,0.342,10,0.326,12,1.094,13,0.272,17,0.547,20,1.466,23,0.547,24,1.442,27,0.968,28,0.712,31,1.094,38,0.413,39,0.383,43,1.167,44,1.859,50,0.445,51,0.413,56,1.515,62,0.511,64,1.768,71,0.584,77,1.25,79,0.649,82,3.415,88,0.436,101,2.275,102,1.823,109,0.663,110,0.909,111,1.031,121,0.963,125,0.851,131,0.547,138,1.695,142,1.559,157,0.905,160,0.905,162,1.026,180,2.064,187,3.011,197,1.859,225,1.695,259,1.885,273,2.338,281,1.25,311,2.338,313,0.905,317,2.905,320,1.442,328,1.168,351,1.094,383,1.094,396,2.338,399,2.064,425,2.485,432,1.956,446,2.064,481,4.917,482,5.112,483,2.921,484,4.746,485,1.695,486,3.412,487,4.019,488,3.556,489,4.028,490,2.754,491,3.011,492,2.754,493,2.754,494,2.754,495,2.754,496,4.746,497,2.712,498,3.203,499,2.754,500,2.754,501,2.338,502,2.338,503,2.754,504,3.412,505,1.559,506,2.754,507,2.754,508,2.064,509,2.754,510,2.754,511,2.754]],["title/23",[4,0.166,29,0.719,72,0.719,88,0.462,512,2.984]],["description/23",[0,0.564,4,0.391,6,0.204,10,0.336,13,0.281,14,0.602,17,0.564,20,0.877,23,0.564,28,0.426,29,1.489,30,1.058,38,0.426,39,0.395,50,0.459,51,0.426,62,0.527,72,0.684,79,0.78,88,0.609,102,2.191,110,0.929,111,1.054,112,0.993,119,1.748,124,2.529,129,2,131,0.816,161,1.607,164,1.607,184,1.058,195,2.529,210,0.933,222,2.326,229,2.128,247,2.325,258,3.179,259,1.128,263,1.748,307,2.128,316,2.972,345,2.128,351,1.918,359,3.488,432,2,436,1.607,460,1.487,464,2.849,508,2.128,513,2.84,514,4.208,515,2.411,516,3.966,517,4.829,518,4.11,519,2.84,520,2.411,521,2.84,522,4.099,523,4.099,524,3.079,525,3.488,526,4.11,527,1.917,528,2.128,529,2.84,530,4.075,531,2.84,532,4.075,533,2.84,534,3.488,535,2.411,536,2.84,537,2.84,538,2.84,539,2.411,540,2.84,541,2.84,542,2.84,543,2.84]],["title/24",[4,0.154,27,0.666,56,0.802,88,0.3,89,1.564,315,1.564,544,1.701]],["description/24",[0,0.569,3,1.933,4,0.393,6,0.298,10,0.339,13,0.283,17,0.569,23,0.569,27,1.414,28,0.43,29,0.996,34,1.5,36,1.621,38,0.43,39,0.398,43,0.831,50,0.462,51,0.43,56,1.543,62,0.532,68,1.5,79,0.668,88,0.724,89,2.34,100,2.783,101,1.621,102,1.299,108,3.075,110,0.647,111,0.734,112,1.971,115,2.431,121,1.002,131,0.569,132,1.933,138,1.763,144,1.394,164,2.34,177,2.791,180,3.098,208,2.202,213,2.146,227,1.299,281,1.299,308,1.5,346,2.146,355,1.933,357,2.431,392,1.763,412,2.146,426,3.275,432,2.361,478,1.763,482,2.146,485,1.763,497,1.933,505,3.008,515,2.431,534,2.431,544,3.614,545,2.864,546,2.864,547,2.864,548,2.864,549,2.431,550,2.864,551,2.864,552,4.853,553,2.864,554,2.864,555,2.431,556,1.763,557,2.864,558,2.146,559,2.431,560,2.864,561,2.864,562,2.864,563,2.864,564,2.864,565,2.864,566,2.864,567,2.864,568,2.864,569,2.864,570,2.864,571,2.864,572,2.864,573,2.431,574,2.431]],["title/25",[4,0.154,56,0.802,88,0.437,274,1.865,275,1.865,575,2.071]],["description/25",[0,0.544,4,0.39,6,0.288,8,3.203,10,0.324,13,0.271,14,0.849,17,0.544,23,0.544,28,0.411,30,1.491,38,0.411,39,0.381,43,1.162,50,0.442,51,0.411,56,1.373,59,2.052,62,0.508,72,0.964,77,1.816,78,0.747,79,0.646,88,0.698,109,0.66,110,0.905,112,1.4,117,1.333,131,0.544,144,1.948,157,1.315,160,1.315,162,1.491,164,1.55,179,2.325,227,1.243,259,1.59,270,1.686,271,3.465,274,3.193,275,2.702,288,1.243,313,1.554,319,1.333,325,1.849,328,1.698,329,1.333,346,2.052,404,1.849,416,1.243,425,2.477,426,2.702,432,1.333,433,1.243,436,1.55,446,2.052,450,2.052,464,1.333,502,2.325,505,3.133,544,3.407,574,2.325,575,2.999,576,2.999,577,2.739,578,2.739,579,5.069,580,3.512,581,4.003,582,2.739,583,2.739,584,2.739,585,2.739,586,2.739,587,2.739,588,2.739,589,2.739,590,2.325,591,2.739,592,2.052,593,2.739,594,4.003,595,2.739,596,2.739,597,4.003,598,2.739,599,2.739,600,2.739,601,2.739,602,2.739,603,2.739,604,2.739,605,3.398,606,2.739,607,2.739,608,2.739,609,2.739]],["title/26",[4,0.166,56,0.866,88,0.324,259,1.185,271,1.689,610,2.984]],["description/26",[0,0.501,4,0.391,6,0.325,10,0.299,13,0.25,14,0.535,17,0.501,23,0.501,27,1.289,28,0.566,29,0.908,38,0.379,39,0.351,50,0.408,51,0.379,52,1.554,56,1.095,62,0.469,72,0.908,79,0.728,88,0.724,89,2.134,108,3.446,109,0.908,110,0.852,111,0.648,112,0.883,121,0.883,131,0.501,135,2.144,144,2.195,157,1.482,160,1.482,162,1.404,191,2.362,213,2.825,222,1.43,227,1.711,259,2.126,270,1.554,271,3.03,274,3.044,275,3.044,280,2.32,286,3.829,313,1.845,315,1.43,316,1.554,325,1.704,345,1.892,394,2.825,399,1.892,400,2.144,408,2.144,412,1.892,416,1.711,420,2.144,425,2.803,432,1.835,433,1.711,440,3.2,441,2.144,457,2.144,464,1.229,478,2.32,485,1.554,488,3.38,501,2.144,508,1.892,514,1.892,544,3.079,558,1.892,573,2.144,575,2.825,576,1.892,611,2.144,612,2.526,613,3.77,614,2.526,615,2.526,616,2.526,617,3.77,618,2.526,619,2.526,620,2.144,621,2.526,622,3.77,623,2.526,624,2.526,625,2.526,626,2.526,627,2.526,628,2.526,629,2.526,630,2.526,631,2.526]],["title/27",[4,0.154,27,0.666,56,1.17,111,0.709,632,2.346,633,2.346]],["description/27",[0,0.509,4,0.394,6,0.185,10,0.303,13,0.254,17,0.509,21,1.018,23,0.509,27,1.562,28,0.683,38,0.385,39,0.357,43,0.744,50,0.414,51,0.385,56,1.564,62,0.476,71,0.544,76,0.897,77,1.73,78,1.041,79,0.87,94,1.163,95,1.731,96,1.731,100,1.343,102,2.444,111,1.499,112,1.592,122,1.343,127,2.347,129,1.248,131,0.509,132,1.731,143,1.343,144,1.856,152,1.731,154,2.158,157,0.843,160,0.843,162,0.955,208,1.163,210,1.253,227,1.73,231,1.248,270,2.347,313,0.843,316,1.578,328,1.087,329,1.248,351,1.514,390,2.573,404,1.731,416,2.287,432,1.248,433,2.287,436,1.451,460,1.343,464,2.453,478,1.578,488,2.857,489,2.177,505,3.4,549,2.177,579,2.177,590,2.177,592,1.921,632,2.177,633,2.177,634,5.041,635,5.387,636,4.552,637,5.387,638,5.847,639,2.564,640,2.857,641,2.564,642,2.564,643,1.921,644,1.921,645,2.564,646,2.564,647,2.564,648,2.564,649,3.813,650,2.564,651,2.564,652,2.564,653,2.564,654,3.813,655,2.564,656,2.564,657,2.564,658,2.564,659,2.564,660,2.564,661,2.177,662,2.564]],["title/28",[4,0.154,22,0.625,30,1.03,72,0.666,88,0.3,319,1.345,351,1.098]],["description/28",[0,0.596,4,0.383,6,0.308,10,0.355,13,0.297,14,0.636,17,0.596,19,1.813,22,1.388,23,0.596,28,0.45,29,0.723,30,2.52,31,1.192,38,0.45,39,0.417,42,2.025,43,0.871,50,0.485,51,0.45,62,0.557,63,2.025,72,1.382,73,1.049,78,0.819,79,0.877,88,0.666,110,1.126,111,0.77,125,1.538,129,1.46,131,0.596,134,1.813,157,0.986,160,0.986,162,1.118,174,2.249,191,1.572,222,2.42,224,2.302,247,1.192,258,1.699,259,1.698,317,1.572,318,2.42,319,3.248,326,2.025,327,2.025,328,1.273,329,1.46,351,1.978,383,1.192,392,1.847,413,1.699,416,1.362,433,1.362,458,2.886,497,2.025,498,2.025,527,2.025,530,2.025,532,2.025,556,1.847,580,2.886,663,1.847,664,3.204,665,3.001,666,4.276,667,3.001,668,3.001,669,3.001,670,3.001,671,2.249,672,2.025,673,2.249,674,2.547,675,3.001,676,3.001]],["title/29",[4,0.143,20,0.795,22,0.582,71,0.546,88,0.279,245,1.168,319,1.253,351,1.022]],["description/29",[0,0.562,4,0.386,6,0.295,10,0.335,13,0.28,17,0.562,19,1.739,20,1.732,22,1.397,23,0.562,28,0.425,31,1.915,38,0.425,39,0.571,42,1.911,43,0.822,50,0.457,51,0.425,52,1.743,62,0.526,63,1.911,71,1.335,73,0.99,76,0.99,78,0.773,79,0.853,88,0.654,107,1.483,109,0.682,110,1.09,111,0.726,125,1.266,131,0.562,134,1.739,157,0.93,160,0.93,162,1.055,184,1.055,191,1.483,199,2.122,206,0.99,224,2.045,245,3.022,258,1.603,259,1.629,265,2.404,278,2.404,313,0.93,317,2.525,318,2.321,319,3.112,320,1.483,326,1.911,327,1.911,328,1.201,329,1.378,347,2.122,351,1.915,362,2.122,383,1.125,392,1.743,413,1.603,416,1.285,433,1.861,456,2.404,458,2.768,462,1.743,497,1.911,498,1.911,527,1.911,556,1.743,580,2.768,611,2.404,640,2.122,663,1.743,671,2.122,672,1.911,677,2.832,678,2.832,679,2.122,680,2.832,681,2.832,682,2.122,683,2.404,684,2.122,685,1.911,686,2.832,687,2.832]],["title/30",[4,0.143,22,0.582,27,0.62,56,0.747,88,0.279,89,1.457,317,1.348,318,1.457]],["description/30",[0,0.573,4,0.377,6,0.3,10,0.342,13,0.286,17,0.573,20,1.285,22,1.404,23,0.573,27,1.174,28,0.434,30,1.076,38,0.434,39,0.402,42,1.95,43,1.208,50,0.466,51,0.434,56,1.208,62,0.536,73,1.01,77,1.311,78,0.788,79,0.672,88,0.639,89,3.516,100,2.794,101,2.76,109,0.696,110,0.653,111,0.741,117,1.406,119,1.778,125,0.892,129,2.596,131,0.573,134,1.764,142,1.635,143,1.513,157,0.949,160,0.949,162,1.076,184,1.076,185,2.452,195,1.778,210,0.949,224,1.764,288,1.311,317,2.554,318,2.76,319,3.079,326,1.95,327,1.95,328,1.225,329,1.406,342,1.95,351,2.119,383,1.147,410,2.452,416,1.311,433,1.311,458,1.95,462,3.894,464,2.866,498,1.95,505,2.355,516,2.164,527,1.95,544,1.778,556,1.778,580,3.291,640,2.164,661,2.452,663,1.778,688,2.889,689,2.889,690,2.889,691,2.889,692,2.889,693,2.889,694,2.889,695,2.889,696,4.161,697,2.889,698,2.889,699,2.889,700,2.889,701,2.889,702,2.889]],["title/31",[4,0.166,20,1.315,71,0.633,94,1.932]],["description/31",[0,0.529,4,0.392,6,0.192,10,0.316,13,0.264,14,0.565,15,1.396,16,1.664,17,0.529,20,1.915,22,1.053,23,0.529,24,1.396,26,1.298,27,0.642,28,0.4,29,0.642,35,1.799,38,0.4,39,0.371,40,1.998,43,0.774,50,0.431,51,0.4,53,1.799,62,0.495,71,1.371,76,0.932,78,1.658,79,0.634,87,2.941,88,0.426,94,2.484,109,0.642,110,0.887,111,0.684,125,0.823,128,1.641,131,0.529,134,1.664,143,1.396,154,1.509,157,0.876,160,0.876,161,1.509,162,0.993,184,0.993,189,2.263,194,1.799,197,1.799,201,1.799,203,1.998,204,2.263,206,1.373,210,0.876,212,2.941,214,2.649,222,1.509,224,1.131,232,1.298,245,2.484,259,1.059,281,1.21,282,1.998,301,1.998,313,0.876,323,1.998,328,1.131,342,1.799,383,1.059,416,1.21,433,1.21,462,2.867,463,3.143,491,1.998,516,1.998,524,1.998,643,1.998,644,3.49,679,1.998,682,1.998,684,2.941,685,1.799,703,2.263,704,4.658,705,3.332,706,2.263,707,2.263,708,2.941,709,2.649,710,2.667,711,2.263,712,2.263,713,1.998,714,2.667,715,2.667,716,2.667,717,2.667,718,2.667,719,2.667,720,2.667,721,2.667,722,2.667,723,3.925,724,2.667,725,2.263,726,2.667,727,2.667,728,2.263,729,2.667,730,2.263,731,2.263,732,2.667]],["title/32",[4,0.143,71,0.811,94,1.735,107,1.348,733,2.185,734,2.185]],["description/32",[0,0.544,4,0.391,6,0.197,10,0.324,13,0.271,15,1.434,16,1.162,17,0.544,20,1.236,22,0.905,23,0.544,24,1.434,27,0.964,28,0.411,29,0.66,38,0.411,39,0.381,43,0.795,50,0.442,51,0.411,53,1.849,62,0.508,71,1.379,75,1.088,76,0.958,78,1.629,79,0.442,88,0.297,94,2.361,107,2.096,109,0.66,110,0.619,111,1.42,121,0.958,131,0.544,134,1.698,143,1.434,145,1.55,157,0.9,160,0.9,162,1.02,184,1.02,197,1.849,200,2.052,201,1.849,206,1.4,210,0.9,212,2.052,214,3.193,222,1.55,224,1.162,225,1.686,245,2.512,313,0.9,328,1.162,329,1.333,383,1.088,407,2.325,416,1.243,433,1.243,439,3.398,448,3.398,460,1.434,462,2.912,463,3.512,477,2.325,486,2.325,524,2.052,592,2.052,643,2.052,644,3.545,679,2.052,682,2.052,685,1.849,703,2.325,705,3.398,706,2.325,707,2.325,708,2.999,709,2.702,711,2.325,712,2.325,728,2.325,730,2.325,731,2.325,733,4.417,734,4.417,735,2.739,736,2.739,737,2.739,738,2.739,739,2.739,740,2.739,741,2.739,742,2.739,743,2.739,744,2.739,745,2.739,746,2.739,747,2.739,748,2.739,749,2.739,750,2.739,751,2.739,752,2.739,753,2.052,754,2.739,755,2.739,756,2.739]],["title/33",[4,0.126,14,0.48,72,0.545,88,0.376,425,1.185,663,1.393,757,2.945,758,1.921]],["description/33",[4,0.391,6,0.236,10,0.388,13,0.324,14,0.694,17,0.65,23,0.65,28,0.492,29,1.258,30,1.694,38,0.492,39,0.456,50,0.529,51,0.492,62,0.608,72,1.095,88,0.566,107,1.715,110,1.275,112,1.59,117,1.594,129,1.594,131,0.65,136,2.454,146,2.454,154,2.574,155,2.78,170,2.454,195,2.016,210,1.076,251,2.21,256,3.859,258,2.574,259,1.301,263,2.016,301,3.407,351,1.301,413,1.854,425,1.715,426,2.21,436,1.854,460,2.381,464,2.213,466,3.859,485,2.016,514,3.407,522,4.433,523,2.78,525,2.78,535,2.78,539,2.78,576,3.407,663,2.016,672,2.21,725,3.859,757,5.032,758,3.859,759,4.547,760,4.547,761,3.275,762,3.275,763,3.275,764,3.275,765,3.275,766,3.275,767,3.275,768,3.275,769,3.275,770,3.275,771,3.275,772,3.275,773,3.275,774,3.275,775,3.275,776,3.275,777,3.275,778,3.275,779,3.275,780,3.275,781,3.275,782,3.275,783,3.275]],["title/34",[25,4.211]],["description/34",[26,2.72,27,1.346,145,3.164,784,3.773]],["title/35",[16,1.505,71,0.752,206,1.241,230,1.41]],["description/35",[4,0.352,16,2.061,23,0.965,64,1.81,71,1.339,109,1.171,110,1.099,125,1.501,134,2.061,161,2.751,184,1.81,206,2.055,210,1.597,230,1.93,245,2.667,362,3.641,463,3.28,684,3.641,785,4.86,786,4.86,787,4.86,788,4.86,789,4.86,790,4.86,791,4.86]],["title/36",[4,0.154,22,0.625,26,1.345,29,0.666,73,0.967,145,2.281]],["description/36",[0,0.569,4,0.4,5,1.763,14,1.283,15,1.5,22,0.935,26,2.586,27,1.28,29,1.28,30,1.54,64,1.067,72,1.169,73,1.971,75,1.927,76,1.697,78,0.782,79,0.784,88,0.311,94,1.876,109,0.69,110,0.647,111,1.06,114,2.557,121,1.002,145,2.747,184,1.067,206,1.002,208,2.202,224,1.215,227,2.202,229,2.146,230,2.238,231,1.394,232,1.394,247,1.138,281,1.299,323,2.146,349,2.431,383,1.138,483,1.763,528,2.146,530,2.791,532,3.275,664,2.146,671,2.146,708,2.146,709,1.933,713,2.146,753,3.098,784,1.933,792,4.511,793,3.51,794,4.853,795,3.098,796,2.431,797,3.51,798,4.511,799,3.51,800,3.51,801,2.431,802,2.431,803,2.431,804,2.431,805,2.864,806,2.864,807,2.431,808,2.431,809,2.864]],["title/37",[4,0.154,22,0.625,26,1.345,29,0.666,73,0.967,784,2.719]],["description/37",[0,0.548,4,0.401,5,1.7,14,1.229,15,2.109,21,1.097,22,1.074,26,1.96,27,1.258,29,1.338,30,1.5,35,1.864,64,1.029,72,1.258,73,1.942,75,1.888,76,1.662,78,1.099,79,0.767,88,0.3,109,0.665,111,1.033,114,2.52,121,0.966,187,2.069,206,0.966,208,2.157,224,1.171,227,2.157,230,2.303,231,1.344,234,3.418,235,2.344,247,1.097,248,2.344,332,2.069,383,1.097,390,1.864,447,2.344,483,1.7,528,2.069,530,2.718,532,3.208,664,2.069,673,2.069,685,1.864,713,3.017,753,3.017,784,3.748,792,4.434,793,3.418,795,2.069,796,2.344,797,3.418,798,4.434,799,3.418,800,3.418,801,2.344,802,2.344,803,2.344,804,2.344,807,2.344,808,2.344,810,4.027,811,2.762,812,2.762,813,2.762,814,2.762,815,2.762,816,2.762]],["title/38",[32,3.053]],["description/38",[32,3.479,34,2.96]],["title/39",[4,0.181,6,0.233,32,1.996,33,2.429,34,1.698]],["description/39",[0,0.271,1,2.424,2,1.209,3,1.559,4,0.394,5,0.841,6,0.449,9,0.818,10,0.273,11,0.769,12,0.543,13,0.558,14,0.49,16,0.58,17,0.595,18,0.774,19,0.58,21,0.543,22,0.522,23,0.782,27,0.329,28,0.529,29,0.329,31,0.543,32,2.63,33,2.64,34,0.716,35,2.378,38,0.205,39,0.49,41,1.16,44,1.559,47,0.923,48,0.923,49,1.96,51,0.529,52,2.169,56,0.87,61,0.923,62,0.429,64,1.467,66,1.307,68,2.062,69,0.774,70,0.841,71,0.49,72,0.329,73,0.478,74,1.16,75,0.543,76,0.478,77,1.048,78,0.373,79,0.735,82,2.63,83,1.024,84,0.774,86,1.024,87,1.024,88,0.148,90,1.16,91,1.16,94,0.62,95,0.923,96,0.923,97,1.16,98,1.16,99,1.16,100,2.062,102,2.064,108,1.845,109,1.451,111,0.769,112,1.049,113,1.16,114,2.403,116,1.16,122,0.716,129,0.665,150,0.923,174,1.024,183,1.559,184,0.509,192,1.73,203,1.73,206,1.232,208,2.705,210,0.449,214,2.023,225,0.841,230,1.4,232,1.459,233,1.024,246,0.774,247,1.191,271,0.774,277,1.16,280,1.845,281,2.846,282,2.246,290,1.96,291,2.991,302,1.96,307,2.246,308,1.209,312,1.16,315,1.697,330,2.658,331,1.024,338,0.923,344,1.16,355,3.227,358,0.841,373,1.96,432,1.916,436,0.774,460,0.716,464,1.715,478,0.841,483,1.421,504,1.16,505,1.307,520,1.16,555,1.16,556,0.841,558,1.024,559,1.96,605,1.16,620,1.16,672,1.559,673,1.024,674,1.96,683,1.16,709,0.923,795,1.024,817,3.938,818,4.549,819,3.524,820,1.367,821,2.998,822,2.309,823,2.309,824,2.309,825,1.96,826,2.309,827,2.309,828,1.367,829,1.367,830,2.998,831,1.367,832,2.309,833,2.309,834,2.309,835,1.367,836,2.998,837,1.367,838,2.998,839,2.309,840,2.309,841,1.367,842,1.367,843,2.309,844,2.309,845,2.309,846,2.309,847,1.367,848,1.367,849,1.367,850,1.367,851,1.367,852,1.367,853,1.367,854,3.938,855,2.309,856,1.367,857,2.309,858,1.367,859,1.367,860,2.309,861,1.367,862,2.309,863,1.367,864,1.367,865,1.367,866,1.367,867,1.367,868,1.367]],["title/40",[869,2.808]],["description/40",[121,1.966,869,3.182,870,4.772]],["title/41",[4,0.181,66,1.835,869,2.556,871,2.188]],["description/41",[0,0.679,4,0.392,10,0.405,12,1.358,13,0.338,20,1.056,38,0.513,39,0.476,43,0.993,47,2.308,64,1.745,66,1.936,78,1.278,79,0.552,88,0.371,108,2.453,109,0.824,110,0.773,111,1.37,112,1.196,117,1.664,121,1.869,124,2.105,142,1.936,170,2.563,175,3.977,177,2.308,201,2.308,262,2.903,263,2.105,281,2.125,288,1.552,339,3.51,355,2.308,358,2.883,404,2.308,413,1.936,414,2.903,460,1.791,479,2.903,485,2.105,491,2.563,825,3.977,869,3.765,870,2.903,871,4.375,872,2.903,873,3.42,874,5.343,875,3.42,876,3.42,877,3.42,878,4.685,879,3.42,880,3.42,881,3.42,882,3.42,883,3.42,884,3.42,885,5.343,886,4.685,887,3.42,888,3.42,889,3.42]],["title/42",[4,0.181,358,1.996,869,2.556,871,2.188]],["description/42",[64,2.048,210,1.807,358,3.384,869,3.112,871,3.711,872,4.667,890,5.499]]],"invertedIndex":[["",{"_index":4,"title":{"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"36":{},"37":{},"39":{},"41":{},"42":{}},"description":{"0":{},"1":{},"2":{},"4":{},"6":{},"8":{},"10":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"35":{},"36":{},"37":{},"39":{},"41":{}}}],["0.1",{"_index":802,"title":{},"description":{"36":{},"37":{}}}],["0.2",{"_index":803,"title":{},"description":{"36":{},"37":{}}}],["0.5",{"_index":604,"title":{},"description":{"25":{}}}],["0.5-0.7",{"_index":601,"title":{},"description":{"25":{}}}],["0.7-0.9",{"_index":598,"title":{},"description":{"25":{}}}],["0.9-1.0",{"_index":595,"title":{},"description":{"25":{}}}],["1",{"_index":157,"title":{},"description":{"8":{},"12":{},"17":{},"18":{},"20":{},"22":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{}}}],["1-100",{"_index":340,"title":{},"description":{"17":{},"18":{}}}],["1-200",{"_index":370,"title":{},"description":{"18":{}}}],["1-5",{"_index":380,"title":{},"description":{"18":{}}}],["1.1",{"_index":758,"title":{"33":{}},"description":{"33":{}}}],["10",{"_index":781,"title":{},"description":{"33":{}}}],["10,000",{"_index":538,"title":{},"description":{"23":{}}}],["10-5000",{"_index":378,"title":{},"description":{"18":{}}}],["100,000",{"_index":540,"title":{},"description":{"23":{}}}],["1000",{"_index":379,"title":{},"description":{"18":{}}}],["123.45",{"_index":881,"title":{},"description":{"41":{}}}],["1536",{"_index":471,"title":{},"description":{"21":{}}}],["1mb",{"_index":790,"title":{},"description":{"35":{}}}],["2",{"_index":160,"title":{},"description":{"8":{},"12":{},"17":{},"18":{},"20":{},"22":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{}}}],["2.74",{"_index":716,"title":{},"description":{"31":{}}}],["20",{"_index":341,"title":{},"description":{"17":{}}}],["200",{"_index":444,"title":{},"description":{"20":{}}}],["200-1000",{"_index":681,"title":{},"description":{"29":{}}}],["202",{"_index":708,"title":{},"description":{"31":{},"32":{},"36":{}}}],["3",{"_index":162,"title":{},"description":{"8":{},"17":{},"18":{},"22":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{}}}],["30",{"_index":374,"title":{},"description":{"18":{}}}],["3072",{"_index":474,"title":{},"description":{"21":{}}}],["4",{"_index":328,"title":{},"description":{"17":{},"18":{},"22":{},"25":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{}}}],["5",{"_index":329,"title":{},"description":{"17":{},"18":{},"25":{},"27":{},"28":{},"29":{},"30":{},"32":{}}}],["50",{"_index":371,"title":{},"description":{"18":{}}}],["6",{"_index":365,"title":{},"description":{"18":{}}}],["abstract",{"_index":553,"title":{},"description":{"24":{}}}],["accept",{"_index":709,"title":{},"description":{"31":{},"32":{},"36":{},"39":{}}}],["access",{"_index":3,"title":{},"description":{"0":{},"2":{},"24":{},"39":{}}}],["action",{"_index":273,"title":{},"description":{"16":{},"22":{}}}],["activ",{"_index":884,"title":{},"description":{"41":{}}}],["actual",{"_index":410,"title":{},"description":{"19":{},"30":{}}}],["ad",{"_index":193,"title":{},"description":{"10":{}}}],["add",{"_index":189,"title":{},"description":{"10":{},"31":{}}}],["add-docu",{"_index":202,"title":{},"description":{"10":{}}}],["against",{"_index":663,"title":{"33":{}},"description":{"28":{},"29":{},"30":{},"33":{}}}],["agent",{"_index":82,"title":{"16":{}},"description":{"2":{},"16":{},"22":{},"39":{}}}],["agent'",{"_index":292,"title":{},"description":{"16":{}}}],["aggreg",{"_index":769,"title":{},"description":{"33":{}}}],["ai",{"_index":18,"title":{"16":{}},"description":{"0":{},"2":{},"15":{},"16":{},"39":{}}}],["alic",{"_index":591,"title":{},"description":{"25":{}}}],["all-in-on",{"_index":610,"title":{"26":{}},"description":{}}],["allow",{"_index":262,"title":{},"description":{"14":{},"41":{}}}],["ambigu",{"_index":608,"title":{},"description":{"25":{}}}],["analysi",{"_index":390,"title":{},"description":{"18":{},"19":{},"27":{},"37":{}}}],["analyz",{"_index":633,"title":{"27":{}},"description":{"27":{}}}],["and/or",{"_index":229,"title":{},"description":{"12":{},"23":{},"36":{}}}],["anoth",{"_index":814,"title":{},"description":{"37":{}}}],["answer",{"_index":280,"title":{},"description":{"16":{},"17":{},"18":{},"26":{},"39":{}}}],["api",{"_index":1,"title":{},"description":{"0":{},"2":{},"21":{},"22":{},"39":{}}}],["api/metr",{"_index":886,"title":{},"description":{"41":{}}}],["api/metrics/{path",{"_index":890,"title":{},"description":{"42":{}}}],["api/v1/collection-manag",{"_index":266,"title":{},"description":{"14":{}}}],["api/v1/config",{"_index":150,"title":{},"description":{"6":{},"8":{},"20":{},"39":{}}}],["api/v1/document-stream",{"_index":791,"title":{},"description":{"35":{}}}],["api/v1/export-cor",{"_index":816,"title":{},"description":{"37":{}}}],["api/v1/flow",{"_index":147,"title":{},"description":{"6":{},"8":{}}}],["api/v1/flow/{flow}/service/ag",{"_index":312,"title":{},"description":{"16":{},"39":{}}}],["api/v1/flow/{flow}/service/document-embed",{"_index":687,"title":{},"description":{"29":{}}}],["api/v1/flow/{flow}/service/document-load",{"_index":756,"title":{},"description":{"32":{}}}],["api/v1/flow/{flow}/service/document-rag",{"_index":350,"title":{},"description":{"17":{}}}],["api/v1/flow/{flow}/service/embed",{"_index":480,"title":{},"description":{"21":{}}}],["api/v1/flow/{flow}/service/graph-embed",{"_index":676,"title":{},"description":{"28":{}}}],["api/v1/flow/{flow}/service/graph-rag",{"_index":393,"title":{},"description":{"18":{}}}],["api/v1/flow/{flow}/service/mcp-tool",{"_index":511,"title":{},"description":{"22":{}}}],["api/v1/flow/{flow}/service/nlp-queri",{"_index":609,"title":{},"description":{"25":{}}}],["api/v1/flow/{flow}/service/prompt",{"_index":452,"title":{},"description":{"20":{}}}],["api/v1/flow/{flow}/service/row",{"_index":574,"title":{},"description":{"24":{},"25":{}}}],["api/v1/flow/{flow}/service/row-embed",{"_index":702,"title":{},"description":{"30":{}}}],["api/v1/flow/{flow}/service/sparql-queri",{"_index":783,"title":{},"description":{"33":{}}}],["api/v1/flow/{flow}/service/structured-diag",{"_index":662,"title":{},"description":{"27":{}}}],["api/v1/flow/{flow}/service/structured-queri",{"_index":631,"title":{},"description":{"26":{}}}],["api/v1/flow/{flow}/service/text-complet",{"_index":423,"title":{},"description":{"19":{}}}],["api/v1/flow/{flow}/service/text-load",{"_index":732,"title":{},"description":{"31":{}}}],["api/v1/flow/{flow}/service/tripl",{"_index":543,"title":{},"description":{"23":{}}}],["api/v1/flow/{flow}/service/{kind",{"_index":81,"title":{},"description":{"2":{}}}],["api/v1/import-cor",{"_index":809,"title":{},"description":{"36":{}}}],["api/v1/knowledg",{"_index":249,"title":{},"description":{"12":{}}}],["api/v1/librarian",{"_index":219,"title":{},"description":{"10":{}}}],["api/v1/socket",{"_index":860,"title":{},"description":{"39":{}}}],["api/v1/{kind",{"_index":67,"title":{},"description":{"2":{}}}],["appli",{"_index":120,"title":{},"description":{"6":{},"8":{},"10":{},"12":{},"14":{}}}],["appropri",{"_index":887,"title":{},"description":{"41":{}}}],["approxim",{"_index":691,"title":{},"description":{"30":{}}}],["archiv",{"_index":810,"title":{},"description":{"37":{}}}],["argument",{"_index":311,"title":{},"description":{"16":{},"22":{}}}],["around",{"_index":356,"title":{},"description":{"18":{}}}],["array",{"_index":227,"title":{},"description":{"12":{},"14":{},"16":{},"24":{},"25":{},"26":{},"27":{},"36":{},"37":{}}}],["array_path",{"_index":658,"title":{},"description":{"27":{}}}],["arriv",{"_index":290,"title":{},"description":{"16":{},"39":{}}}],["ask",{"_index":576,"title":{},"description":{"25":{},"26":{},"33":{}}}],["assist",{"_index":405,"title":{},"description":{"19":{}}}],["associ",{"_index":50,"title":{},"description":{"1":{},"2":{},"6":{},"8":{},"10":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{}}}],["assumpt",{"_index":54,"title":{},"description":{"1":{}}}],["asynchron",{"_index":214,"title":{},"description":{"10":{},"31":{},"32":{},"39":{}}}],["attribut",{"_index":750,"title":{},"description":{"32":{}}}],["augment",{"_index":395,"title":{},"description":{"19":{}}}],["authent",{"_index":10,"title":{"1":{}},"description":{"0":{},"1":{},"2":{},"6":{},"8":{},"10":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"39":{},"41":{}}}],["author",{"_index":40,"title":{},"description":{"1":{},"10":{},"31":{}}}],["auto-convert",{"_index":445,"title":{},"description":{"20":{}}}],["autom",{"_index":754,"title":{},"description":{"32":{}}}],["avail",{"_index":177,"title":{},"description":{"8":{},"12":{},"24":{},"41":{}}}],["avg",{"_index":771,"title":{},"description":{"33":{}}}],["b",{"_index":389,"title":{},"description":{"18":{}}}],["backend",{"_index":889,"title":{},"description":{"41":{}}}],["background",{"_index":710,"title":{},"description":{"31":{}}}],["backup",{"_index":793,"title":{},"description":{"36":{},"37":{}}}],["base",{"_index":323,"title":{},"description":{"17":{},"31":{},"36":{}}}],["base64",{"_index":705,"title":{},"description":{"31":{},"32":{}}}],["base64.b64encode(doc_bytes).decode('utf-8",{"_index":749,"title":{},"description":{"32":{}}}],["base64.b64encode(text_content.encode('utf-8",{"_index":722,"title":{},"description":{"31":{}}}],["basic",{"_index":765,"title":{},"description":{"33":{}}}],["batch",{"_index":477,"title":{},"description":{"21":{},"32":{}}}],["be",{"_index":293,"title":{},"description":{"16":{}}}],["bearer",{"_index":38,"title":{},"description":{"1":{},"6":{},"8":{},"10":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"39":{},"41":{}}}],["befor",{"_index":614,"title":{},"description":{"26":{}}}],["behavior",{"_index":401,"title":{},"description":{"19":{}}}],["benefit",{"_index":555,"title":{},"description":{"24":{},"39":{}}}],["best",{"_index":384,"title":{},"description":{"18":{}}}],["between",{"_index":671,"title":{},"description":{"28":{},"29":{},"36":{}}}],["beyond",{"_index":495,"title":{},"description":{"22":{}}}],["bgp",{"_index":766,"title":{},"description":{"33":{}}}],["bidirect",{"_index":826,"title":{},"description":{"39":{}}}],["binari",{"_index":733,"title":{"32":{}},"description":{"32":{}}}],["bind",{"_index":760,"title":{},"description":{"33":{}}}],["block",{"_index":853,"title":{},"description":{"39":{}}}],["blueprint",{"_index":69,"title":{"8":{}},"description":{"2":{},"6":{},"7":{},"8":{},"39":{}}}],["blueprint-nam",{"_index":105,"title":{},"description":{"3":{}}}],["bodi",{"_index":795,"title":{},"description":{"36":{},"37":{},"39":{}}}],["both",{"_index":237,"title":{},"description":{"12":{}}}],["built",{"_index":764,"title":{},"description":{"33":{}}}],["built-in",{"_index":155,"title":{},"description":{"8":{},"33":{}}}],["bulk",{"_index":26,"title":{"36":{},"37":{}},"description":{"0":{},"21":{},"31":{},"34":{},"36":{},"37":{}}}],["byte",{"_index":789,"title":{},"description":{"35":{}}}],["c",{"_index":800,"title":{},"description":{"36":{},"37":{}}}],["cach",{"_index":589,"title":{},"description":{"25":{}}}],["calcul",{"_index":498,"title":{},"description":{"22":{},"28":{},"29":{},"30":{}}}],["call",{"_index":488,"title":{},"description":{"22":{},"26":{},"27":{}}}],["can't",{"_index":628,"title":{},"description":{"26":{}}}],["cancer",{"_index":714,"title":{},"description":{"31":{}}}],["cap",{"_index":377,"title":{},"description":{"18":{}}}],["capabl",{"_index":484,"title":{},"description":{"22":{}}}],["captur",{"_index":455,"title":{},"description":{"21":{}}}],["carri",{"_index":334,"title":{},"description":{"17":{},"18":{}}}],["case",{"_index":383,"title":{},"description":{"18":{},"20":{},"21":{},"22":{},"28":{},"29":{},"30":{},"31":{},"32":{},"36":{},"37":{}}}],["charset",{"_index":723,"title":{},"description":{"31":{}}}],["check",{"_index":301,"title":{},"description":{"16":{},"31":{},"33":{}}}],["chunk",{"_index":245,"title":{"29":{}},"description":{"12":{},"16":{},"17":{},"18":{},"29":{},"31":{},"32":{},"35":{}}}],["chunk-siz",{"_index":788,"title":{},"description":{"35":{}}}],["chunk-typ",{"_index":291,"title":{},"description":{"16":{},"39":{}}}],["citat",{"_index":422,"title":{},"description":{"19":{}}}],["class",{"_index":181,"title":{},"description":{"8":{}}}],["classif",{"_index":449,"title":{},"description":{"20":{},"21":{}}}],["client",{"_index":35,"title":{},"description":{"1":{},"31":{},"37":{},"39":{}}}],["client-gener",{"_index":835,"title":{},"description":{"39":{}}}],["cluster",{"_index":465,"title":{},"description":{"21":{}}}],["code",{"_index":399,"title":{},"description":{"19":{},"22":{},"26":{}}}],["coher",{"_index":279,"title":{},"description":{"16":{}}}],["collabor",{"_index":287,"title":{},"description":{"16":{}}}],["collect",{"_index":75,"title":{"13":{},"14":{}},"description":{"2":{},"12":{},"13":{},"14":{},"17":{},"32":{},"36":{},"37":{},"39":{}}}],["collection-manag",{"_index":74,"title":{},"description":{"2":{},"39":{}}}],["combin",{"_index":316,"title":{},"description":{"17":{},"18":{},"23":{},"26":{},"27":{}}}],["come",{"_index":80,"title":{},"description":{"2":{}}}],["comma-separ",{"_index":653,"title":{},"description":{"27":{}}}],["command",{"_index":490,"title":{},"description":{"22":{}}}],["common",{"_index":882,"title":{},"description":{"41":{}}}],["commun",{"_index":827,"title":{},"description":{"39":{}}}],["compar",{"_index":556,"title":{},"description":{"24":{},"28":{},"29":{},"30":{},"39":{}}}],["comparison",{"_index":457,"title":{},"description":{"21":{},"26":{}}}],["complet",{"_index":21,"title":{"19":{}},"description":{"0":{},"6":{},"12":{},"16":{},"17":{},"18":{},"19":{},"27":{},"37":{},"39":{}}}],["complex",{"_index":502,"title":{},"description":{"22":{},"25":{}}}],["compon",{"_index":527,"title":{},"description":{"23":{},"28":{},"29":{},"30":{}}}],["comput",{"_index":834,"title":{},"description":{"39":{}}}],["concept",{"_index":666,"title":{},"description":{"28":{}}}],["concurr",{"_index":819,"title":{},"description":{"39":{}}}],["condit",{"_index":843,"title":{},"description":{"39":{}}}],["confid",{"_index":579,"title":{},"description":{"25":{},"27":{}}}],["config",{"_index":68,"title":{"5":{}},"description":{"2":{},"6":{},"8":{},"20":{},"24":{},"39":{}}}],["configur",{"_index":12,"title":{"6":{}},"description":{"0":{},"2":{},"5":{},"6":{},"8":{},"17":{},"20":{},"22":{},"39":{},"41":{}}}],["connect",{"_index":355,"title":{},"description":{"18":{},"24":{},"39":{},"41":{}}}],["connector",{"_index":493,"title":{},"description":{"22":{}}}],["consid",{"_index":541,"title":{},"description":{"23":{}}}],["consist",{"_index":430,"title":{},"description":{"20":{}}}],["constraint",{"_index":403,"title":{},"description":{"19":{}}}],["construct",{"_index":763,"title":{},"description":{"33":{}}}],["contain",{"_index":778,"title":{},"description":{"33":{}}}],["content",{"_index":206,"title":{"35":{}},"description":{"10":{},"14":{},"17":{},"18":{},"21":{},"29":{},"31":{},"32":{},"35":{},"36":{},"37":{},"39":{}}}],["context",{"_index":31,"title":{"22":{}},"description":{"0":{},"2":{},"16":{},"17":{},"18":{},"19":{},"22":{},"28":{},"29":{},"39":{}}}],["continu",{"_index":199,"title":{},"description":{"10":{},"16":{},"29":{}}}],["control",{"_index":191,"title":{},"description":{"10":{},"17":{},"18":{},"19":{},"26":{},"28":{},"29":{}}}],["controlled-bi",{"_index":163,"title":{},"description":{"8":{}}}],["conveni",{"_index":625,"title":{},"description":{"26":{}}}],["convers",{"_index":268,"title":{"16":{},"21":{}},"description":{"16":{}}}],["convert",{"_index":325,"title":{},"description":{"17":{},"21":{},"25":{},"26":{}}}],["copi",{"_index":808,"title":{},"description":{"36":{},"37":{}}}],["core",{"_index":73,"title":{"12":{},"36":{},"37":{}},"description":{"2":{},"11":{},"12":{},"14":{},"28":{},"29":{},"30":{},"36":{},"37":{},"39":{}}}],["core-id",{"_index":799,"title":{},"description":{"36":{},"37":{}}}],["corpu",{"_index":324,"title":{},"description":{"17":{}}}],["correct",{"_index":597,"title":{},"description":{"25":{}}}],["correl",{"_index":842,"title":{},"description":{"39":{}}}],["cosin",{"_index":458,"title":{},"description":{"21":{},"28":{},"29":{},"30":{}}}],["cost",{"_index":118,"title":{},"description":{"6":{},"19":{}}}],["couldn't",{"_index":623,"title":{},"description":{"26":{}}}],["count",{"_index":413,"title":{},"description":{"19":{},"21":{},"28":{},"29":{},"33":{},"41":{}}}],["counter",{"_index":879,"title":{},"description":{"41":{}}}],["coverag",{"_index":594,"title":{},"description":{"25":{}}}],["creat",{"_index":127,"title":{},"description":{"6":{},"8":{},"12":{},"14":{},"27":{}}}],["creativ",{"_index":397,"title":{},"description":{"19":{}}}],["criteria",{"_index":196,"title":{},"description":{"10":{}}}],["csv",{"_index":634,"title":{},"description":{"27":{}}}],["csv/json/xml",{"_index":646,"title":{},"description":{"27":{}}}],["current",{"_index":172,"title":{},"description":{"8":{},"10":{},"16":{}}}],["custom",{"_index":143,"title":{},"description":{"6":{},"8":{},"21":{},"27":{},"30":{},"31":{},"32":{}}}],["data",{"_index":27,"title":{"24":{},"27":{},"30":{}},"description":{"0":{},"2":{},"12":{},"14":{},"20":{},"22":{},"24":{},"26":{},"27":{},"30":{},"31":{},"32":{},"34":{},"36":{},"37":{},"39":{}}}],["databas",{"_index":487,"title":{},"description":{"22":{}}}],["dataset",{"_index":661,"title":{},"description":{"27":{},"30":{}}}],["date",{"_index":726,"title":{},"description":{"31":{}}}],["dedupl",{"_index":693,"title":{},"description":{"30":{}}}],["default",{"_index":161,"title":{},"description":{"8":{},"17":{},"18":{},"23":{},"31":{},"35":{}}}],["defin",{"_index":180,"title":{},"description":{"8":{},"22":{},"24":{}}}],["definit",{"_index":132,"title":{},"description":{"6":{},"8":{},"24":{},"27":{}}}],["delet",{"_index":130,"title":{},"description":{"6":{},"8":{},"12":{},"14":{}}}],["delete-blueprint",{"_index":188,"title":{},"description":{"8":{}}}],["delete-collect",{"_index":264,"title":{},"description":{"14":{}}}],["delete-kg-cor",{"_index":239,"title":{},"description":{"12":{}}}],["delimit",{"_index":654,"title":{},"description":{"27":{}}}],["dens",{"_index":453,"title":{},"description":{"21":{}}}],["depend",{"_index":469,"title":{},"description":{"21":{}}}],["depth",{"_index":339,"title":{},"description":{"17":{},"18":{},"41":{}}}],["describ",{"_index":725,"title":{},"description":{"31":{},"33":{}}}],["descript",{"_index":142,"title":{},"description":{"6":{},"12":{},"14":{},"22":{},"30":{},"41":{}}}],["descriptor",{"_index":637,"title":{},"description":{"27":{}}}],["detail",{"_index":174,"title":{},"description":{"8":{},"28":{},"39":{}}}],["detect",{"_index":592,"title":{},"description":{"25":{},"27":{},"32":{}}}],["detect-typ",{"_index":645,"title":{},"description":{"27":{}}}],["detected-schema",{"_index":593,"title":{},"description":{"25":{}}}],["develop",{"_index":408,"title":{},"description":{"19":{},"26":{}}}],["developer-friendli",{"_index":557,"title":{},"description":{"24":{}}}],["diag",{"_index":632,"title":{"27":{}},"description":{"27":{}}}],["diagnos",{"_index":649,"title":{},"description":{"27":{}}}],["diagnosi",{"_index":641,"title":{},"description":{"27":{}}}],["differ",{"_index":724,"title":{},"description":{"31":{}}}],["dimens",{"_index":468,"title":{},"description":{"21":{}}}],["direct",{"_index":394,"title":{"19":{}},"description":{"19":{},"26":{}}}],["directli",{"_index":611,"title":{},"description":{"26":{},"29":{}}}],["disast",{"_index":812,"title":{},"description":{"37":{}}}],["discov",{"_index":497,"title":{},"description":{"22":{},"24":{},"28":{},"29":{}}}],["discover",{"_index":560,"title":{},"description":{"24":{}}}],["discoveri",{"_index":665,"title":{},"description":{"28":{}}}],["display",{"_index":253,"title":{},"description":{"14":{}}}],["distanc",{"_index":459,"title":{},"description":{"21":{}}}],["distinct",{"_index":146,"title":{},"description":{"6":{},"8":{},"33":{}}}],["distinguish",{"_index":571,"title":{},"description":{"24":{}}}],["doc-limit",{"_index":106,"title":{},"description":{"3":{},"17":{}}}],["doc_byt",{"_index":747,"title":{},"description":{"32":{}}}],["document",{"_index":71,"title":{"10":{},"17":{},"29":{},"31":{},"32":{},"35":{}},"description":{"2":{},"9":{},"10":{},"14":{},"17":{},"19":{},"20":{},"21":{},"22":{},"27":{},"29":{},"31":{},"32":{},"35":{},"39":{}}}],["document-embed",{"_index":87,"title":{},"description":{"2":{},"31":{},"39":{}}}],["document-id",{"_index":786,"title":{},"description":{"35":{}}}],["document-load",{"_index":96,"title":{},"description":{"2":{},"21":{},"27":{},"39":{}}}],["document-rag",{"_index":836,"title":{},"description":{"39":{}}}],["document-rag/graph-rag",{"_index":421,"title":{},"description":{"19":{}}}],["document/graph",{"_index":85,"title":{},"description":{"2":{},"19":{}}}],["docx",{"_index":738,"title":{},"description":{"32":{}}}],["docx→text",{"_index":736,"title":{},"description":{"32":{}}}],["doesn't",{"_index":244,"title":{},"description":{"12":{},"14":{}}}],["duplic",{"_index":695,"title":{},"description":{"30":{}}}],["dure",{"_index":680,"title":{},"description":{"29":{}}}],["dynam",{"_index":429,"title":{},"description":{"20":{}}}],["e",{"_index":532,"title":{},"description":{"23":{},"28":{},"36":{},"37":{}}}],["e.g",{"_index":44,"title":{},"description":{"1":{},"6":{},"22":{},"39":{}}}],["each",{"_index":184,"title":{},"description":{"8":{},"12":{},"14":{},"16":{},"23":{},"29":{},"30":{},"31":{},"32":{},"35":{},"36":{},"39":{}}}],["effici",{"_index":559,"title":{},"description":{"24":{},"39":{}}}],["emb",{"_index":706,"title":{},"description":{"31":{},"32":{}}}],["embed",{"_index":22,"title":{"21":{},"28":{},"29":{},"30":{},"36":{},"37":{}},"description":{"0":{},"2":{},"12":{},"17":{},"18":{},"21":{},"28":{},"29":{},"30":{},"31":{},"32":{},"36":{},"37":{},"39":{}}}],["enabl",{"_index":288,"title":{},"description":{"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"25":{},"30":{},"41":{}}}],["encod",{"_index":463,"title":{},"description":{"21":{},"31":{},"32":{},"35":{}}}],["end",{"_index":332,"title":{},"description":{"17":{},"18":{},"37":{}}}],["end-of-dialog",{"_index":304,"title":{},"description":{"16":{}}}],["end-of-messag",{"_index":303,"title":{},"description":{"16":{}}}],["end-of-stream",{"_index":330,"title":{},"description":{"17":{},"18":{},"19":{},"39":{}}}],["end_of_sess",{"_index":333,"title":{},"description":{"17":{},"18":{}}}],["endpoint",{"_index":66,"title":{"41":{}},"description":{"2":{},"4":{},"21":{},"39":{},"41":{}}}],["engin",{"_index":431,"title":{},"description":{"20":{}}}],["english",{"_index":577,"title":{},"description":{"25":{}}}],["entir",{"_index":305,"title":{},"description":{"16":{}}}],["entiti",{"_index":30,"title":{"28":{}},"description":{"0":{},"12":{},"18":{},"20":{},"23":{},"25":{},"28":{},"30":{},"33":{},"36":{},"37":{}}}],["entity-limit",{"_index":368,"title":{},"description":{"18":{}}}],["entity/uri",{"_index":529,"title":{},"description":{"23":{}}}],["entri",{"_index":185,"title":{},"description":{"8":{},"30":{}}}],["eo",{"_index":234,"title":{},"description":{"12":{},"37":{}}}],["error",{"_index":108,"title":{"4":{}},"description":{"4":{},"16":{},"24":{},"26":{},"39":{},"41":{}}}],["essenti",{"_index":642,"title":{},"description":{"27":{}}}],["establish",{"_index":828,"title":{},"description":{"39":{}}}],["etc",{"_index":107,"title":{"32":{}},"description":{"3":{},"6":{},"10":{},"29":{},"32":{},"33":{}}}],["event",{"_index":298,"title":{},"description":{"16":{},"17":{},"18":{}}}],["everyth",{"_index":521,"title":{},"description":{"23":{}}}],["exactli",{"_index":548,"title":{},"description":{"24":{}}}],["exampl",{"_index":436,"title":{},"description":{"20":{},"23":{},"25":{},"27":{},"33":{},"39":{}}}],["execut",{"_index":425,"title":{"22":{},"33":{}},"description":{"20":{},"22":{},"25":{},"26":{},"33":{}}}],["exist",{"_index":154,"title":{},"description":{"8":{},"12":{},"14":{},"27":{},"31":{},"33":{}}}],["expans",{"_index":667,"title":{},"description":{"28":{}}}],["expert",{"_index":406,"title":{},"description":{"19":{}}}],["explain",{"_index":296,"title":{},"description":{"16":{},"17":{},"18":{}}}],["explain_graph",{"_index":336,"title":{},"description":{"17":{},"18":{}}}],["explain_id",{"_index":335,"title":{},"description":{"17":{},"18":{}}}],["explain_tripl",{"_index":299,"title":{},"description":{"16":{},"17":{},"18":{}}}],["explicit",{"_index":63,"title":{},"description":{"2":{},"20":{},"28":{},"29":{}}}],["explor",{"_index":668,"title":{},"description":{"28":{}}}],["export",{"_index":784,"title":{"37":{}},"description":{"34":{},"36":{},"37":{}}}],["expos",{"_index":873,"title":{},"description":{"41":{}}}],["exposit",{"_index":877,"title":{},"description":{"41":{}}}],["extend",{"_index":494,"title":{},"description":{"22":{}}}],["extens",{"_index":743,"title":{},"description":{"32":{}}}],["extern",{"_index":187,"title":{},"description":{"8":{},"22":{},"37":{}}}],["extract",{"_index":448,"title":{},"description":{"20":{},"32":{}}}],["extractor",{"_index":742,"title":{},"description":{"32":{}}}],["f",{"_index":746,"title":{},"description":{"32":{}}}],["f.read",{"_index":748,"title":{},"description":{"32":{}}}],["f1",{"_index":856,"title":{},"description":{"39":{}}}],["f2",{"_index":858,"title":{},"description":{"39":{}}}],["fail",{"_index":622,"title":{},"description":{"26":{}}}],["failur",{"_index":620,"title":{},"description":{"26":{},"39":{}}}],["fals",{"_index":307,"title":{},"description":{"16":{},"23":{},"39":{}}}],["familiar",{"_index":554,"title":{},"description":{"24":{}}}],["faster",{"_index":345,"title":{},"description":{"17":{},"23":{},"26":{}}}],["featur",{"_index":466,"title":{},"description":{"21":{},"33":{}}}],["field",{"_index":100,"title":{"3":{}},"description":{"3":{},"20":{},"24":{},"27":{},"30":{},"39":{}}}],["field(",{"_index":699,"title":{},"description":{"30":{}}}],["field-level",{"_index":618,"title":{},"description":{"26":{}}}],["fieldname(arg",{"_index":562,"title":{},"description":{"24":{}}}],["file",{"_index":489,"title":{},"description":{"22":{},"27":{}}}],["filter",{"_index":195,"title":{},"description":{"10":{},"14":{},"23":{},"30":{},"33":{}}}],["final",{"_index":246,"title":{},"description":{"12":{},"16":{},"17":{},"18":{},"19":{},"39":{}}}],["find",{"_index":351,"title":{"28":{},"29":{}},"description":{"18":{},"21":{},"22":{},"23":{},"27":{},"28":{},"29":{},"30":{},"33":{}}}],["fire-and-forget",{"_index":703,"title":{},"description":{"31":{},"32":{}}}],["first",{"_index":673,"title":{},"description":{"28":{},"37":{},"39":{}}}],["fit",{"_index":639,"title":{},"description":{"27":{}}}],["fix",{"_index":65,"title":{},"description":{"2":{}}}],["flag",{"_index":302,"title":{},"description":{"16":{},"39":{}}}],["flexibl",{"_index":515,"title":{},"description":{"23":{},"24":{}}}],["flight",{"_index":849,"title":{},"description":{"39":{}}}],["flow",{"_index":13,"title":{"7":{},"8":{},"15":{}},"description":{"0":{},"2":{},"6":{},"7":{},"8":{},"10":{},"12":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"39":{},"41":{}}}],["flow'",{"_index":241,"title":{},"description":{"12":{}}}],["flow-blueprint",{"_index":133,"title":{},"description":{"6":{}}}],["flow-id",{"_index":104,"title":{},"description":{"3":{}}}],["flow-scop",{"_index":17,"title":{},"description":{"0":{},"2":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"39":{}}}],["follow",{"_index":233,"title":{},"description":{"12":{},"20":{},"39":{}}}],["follow-up",{"_index":337,"title":{},"description":{"17":{},"18":{}}}],["format",{"_index":111,"title":{"27":{}},"description":{"4":{},"16":{},"19":{},"22":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"36":{},"37":{},"39":{},"41":{}}}],["format-specif",{"_index":655,"title":{},"description":{"27":{}}}],["found",{"_index":841,"title":{},"description":{"39":{}}}],["foundat",{"_index":220,"title":{},"description":{"12":{}}}],["frame",{"_index":864,"title":{},"description":{"39":{}}}],["full",{"_index":640,"title":{},"description":{"27":{},"29":{},"30":{}}}],["function",{"_index":774,"title":{},"description":{"33":{}}}],["fuzzi",{"_index":690,"title":{},"description":{"30":{}}}],["fuzzy/semant",{"_index":688,"title":{},"description":{"30":{}}}],["gateway",{"_index":47,"title":{},"description":{"1":{},"2":{},"39":{},"41":{}}}],["gateway-error",{"_index":113,"title":{},"description":{"4":{},"39":{}}}],["gather",{"_index":278,"title":{},"description":{"16":{},"29":{}}}],["ge",{"_index":801,"title":{},"description":{"36":{},"37":{}}}],["gener",{"_index":313,"title":{"17":{},"18":{},"19":{},"20":{}},"description":{"17":{},"18":{},"19":{},"22":{},"25":{},"26":{},"27":{},"29":{},"31":{},"32":{}}}],["generate-descriptor",{"_index":647,"title":{},"description":{"27":{}}}],["get-blueprint",{"_index":178,"title":{},"description":{"8":{}}}],["get-flow",{"_index":173,"title":{},"description":{"8":{}}}],["get-kg-cor",{"_index":228,"title":{},"description":{"12":{}}}],["getperson($id",{"_index":569,"title":{},"description":{"24":{}}}],["global",{"_index":5,"title":{},"description":{"0":{},"2":{},"36":{},"37":{},"39":{}}}],["go",{"_index":711,"title":{},"description":{"31":{},"32":{}}}],["good",{"_index":599,"title":{},"description":{"25":{}}}],["graph",{"_index":72,"title":{"12":{},"18":{},"23":{},"28":{},"33":{}},"description":{"2":{},"11":{},"12":{},"17":{},"18":{},"19":{},"23":{},"25":{},"26":{},"28":{},"33":{},"36":{},"37":{},"39":{}}}],["graph-awar",{"_index":353,"title":{},"description":{"18":{}}}],["graph-embed",{"_index":86,"title":{},"description":{"2":{},"12":{},"39":{}}}],["graph-rag",{"_index":847,"title":{},"description":{"39":{}}}],["graphql",{"_index":544,"title":{"24":{}},"description":{"24":{},"25":{},"26":{},"30":{}}}],["ground",{"_index":322,"title":{},"description":{"17":{},"19":{}}}],["group",{"_index":251,"title":{},"description":{"14":{},"16":{},"21":{},"33":{}}}],["group_concat",{"_index":773,"title":{},"description":{"33":{}}}],["handl",{"_index":213,"title":{},"description":{"10":{},"24":{},"26":{}}}],["handler",{"_index":507,"title":{},"description":{"22":{}}}],["handshak",{"_index":862,"title":{},"description":{"39":{}}}],["happen",{"_index":755,"title":{},"description":{"32":{}}}],["has_head",{"_index":656,"title":{},"description":{"27":{}}}],["hazard",{"_index":717,"title":{},"description":{"31":{}}}],["head-of-lin",{"_index":852,"title":{},"description":{"39":{}}}],["header",{"_index":41,"title":{},"description":{"1":{},"39":{}}}],["health",{"_index":876,"title":{},"description":{"41":{}}}],["help",{"_index":404,"title":{},"description":{"19":{},"25":{},"27":{},"41":{}}}],["here",{"_index":443,"title":{},"description":{"20":{}}}],["high",{"_index":596,"title":{},"description":{"25":{}}}],["higher",{"_index":342,"title":{},"description":{"17":{},"18":{},"30":{},"31":{}}}],["histogram",{"_index":883,"title":{},"description":{"41":{}}}],["histori",{"_index":285,"title":{},"description":{"16":{}}}],["hit",{"_index":382,"title":{},"description":{"18":{}}}],["hop",{"_index":361,"title":{},"description":{"18":{}}}],["host",{"_index":267,"title":{},"description":{"15":{}}}],["html",{"_index":740,"title":{},"description":{"32":{}}}],["http",{"_index":674,"title":{},"description":{"28":{},"39":{}}}],["http://example.com/alic",{"_index":782,"title":{},"description":{"33":{}}}],["http://example.com/person",{"_index":779,"title":{},"description":{"33":{}}}],["http://www.w3.org/1999/02/22-rdf-syntax-ns#typ",{"_index":535,"title":{},"description":{"23":{},"33":{}}}],["http://www.w3.org/2000/01/rdf-schema#label",{"_index":780,"title":{},"description":{"33":{}}}],["https://example.com/ent",{"_index":531,"title":{},"description":{"23":{}}}],["https://example.com/know",{"_index":537,"title":{},"description":{"23":{}}}],["https://example.com/person/alic",{"_index":534,"title":{},"description":{"23":{},"24":{}}}],["https://example.com/type/person",{"_index":536,"title":{},"description":{"23":{}}}],["human-read",{"_index":252,"title":{},"description":{"14":{}}}],["iam",{"_index":7,"title":{},"description":{"0":{},"1":{},"2":{}}}],["id",{"_index":208,"title":{},"description":{"10":{},"12":{},"14":{},"20":{},"24":{},"27":{},"36":{},"37":{},"39":{}}}],["ident",{"_index":49,"title":{},"description":{"1":{},"39":{}}}],["identifi",{"_index":77,"title":{},"description":{"2":{},"16":{},"18":{},"20":{},"22":{},"25":{},"27":{},"30":{},"39":{}}}],["immedi",{"_index":728,"title":{},"description":{"31":{},"32":{}}}],["implement",{"_index":506,"title":{},"description":{"22":{}}}],["import",{"_index":145,"title":{"36":{}},"description":{"6":{},"8":{},"32":{},"34":{},"36":{}}}],["import/export",{"_index":25,"title":{"34":{}},"description":{"0":{}}}],["in-band",{"_index":861,"title":{},"description":{"39":{}}}],["in-token",{"_index":415,"title":{},"description":{"19":{}}}],["includ",{"_index":117,"title":{},"description":{"6":{},"8":{},"16":{},"19":{},"25":{},"30":{},"33":{},"41":{}}}],["incorpor",{"_index":366,"title":{},"description":{"18":{}}}],["incorrect",{"_index":606,"title":{},"description":{"25":{}}}],["increment",{"_index":447,"title":{},"description":{"20":{},"37":{}}}],["index",{"_index":462,"title":{},"description":{"21":{},"29":{},"30":{},"31":{},"32":{}}}],["index_nam",{"_index":698,"title":{},"description":{"30":{}}}],["index_valu",{"_index":700,"title":{},"description":{"30":{}}}],["indic",{"_index":859,"title":{},"description":{"39":{}}}],["individu",{"_index":683,"title":{},"description":{"29":{},"39":{}}}],["info",{"_index":348,"title":{},"description":{"17":{}}}],["inform",{"_index":225,"title":{},"description":{"12":{},"16":{},"22":{},"32":{},"39":{}}}],["infrastructur",{"_index":624,"title":{},"description":{"26":{}}}],["ingest",{"_index":643,"title":{},"description":{"27":{},"31":{},"32":{}}}],["initi",{"_index":805,"title":{},"description":{"36":{}}}],["inlin",{"_index":205,"title":{},"description":{"10":{},"16":{},"17":{},"18":{}}}],["input",{"_index":416,"title":{},"description":{"19":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{}}}],["inspect",{"_index":587,"title":{},"description":{"25":{}}}],["inspect/modifi",{"_index":613,"title":{},"description":{"26":{}}}],["instanc",{"_index":131,"title":{},"description":{"6":{},"8":{},"12":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{}}}],["instead",{"_index":558,"title":{},"description":{"24":{},"26":{},"39":{}}}],["integr",{"_index":491,"title":{},"description":{"22":{},"31":{},"41":{}}}],["interfac",{"_index":34,"title":{"39":{}},"description":{"0":{},"6":{},"8":{},"24":{},"38":{},"39":{}}}],["interface-descript",{"_index":141,"title":{},"description":{"6":{}}}],["intermedi",{"_index":630,"title":{},"description":{"26":{}}}],["intern",{"_index":55,"title":{},"description":{"1":{}}}],["interv",{"_index":888,"title":{},"description":{"41":{}}}],["introspect",{"_index":552,"title":{},"description":{"24":{}}}],["invalid",{"_index":572,"title":{},"description":{"24":{}}}],["iri",{"_index":787,"title":{},"description":{"35":{}}}],["isiri",{"_index":775,"title":{},"description":{"33":{}}}],["issu",{"_index":573,"title":{},"description":{"24":{},"26":{}}}],["it'",{"_index":261,"title":{},"description":{"14":{},"17":{},"18":{}}}],["item",{"_index":123,"title":{},"description":{"6":{}}}],["json",{"_index":102,"title":{},"description":{"3":{},"4":{},"19":{},"20":{},"22":{},"23":{},"24":{},"27":{},"39":{}}}],["kebab-cas",{"_index":103,"title":{},"description":{"3":{}}}],["key",{"_index":60,"title":{},"description":{"2":{},"6":{}}}],["keyword",{"_index":678,"title":{},"description":{"29":{}}}],["kind",{"_index":837,"title":{},"description":{"39":{}}}],["knob",{"_index":367,"title":{},"description":{"18":{}}}],["know",{"_index":581,"title":{},"description":{"25":{}}}],["knowledg",{"_index":14,"title":{"11":{},"12":{},"18":{},"33":{}},"description":{"0":{},"2":{},"11":{},"12":{},"14":{},"17":{},"18":{},"19":{},"23":{},"25":{},"26":{},"28":{},"31":{},"33":{},"36":{},"37":{},"39":{}}}],["known",{"_index":648,"title":{},"description":{"27":{}}}],["label",{"_index":256,"title":{},"description":{"14":{},"33":{}}}],["languag",{"_index":275,"title":{"25":{}},"description":{"16":{},"25":{},"26":{}}}],["larg",{"_index":542,"title":{},"description":{"23":{}}}],["larger",{"_index":381,"title":{},"description":{"18":{}}}],["latenc",{"_index":825,"title":{},"description":{"39":{},"41":{}}}],["later",{"_index":730,"title":{},"description":{"31":{},"32":{}}}],["legaci",{"_index":306,"title":{},"description":{"16":{}}}],["less",{"_index":627,"title":{},"description":{"26":{}}}],["leverag",{"_index":354,"title":{},"description":{"18":{},"19":{}}}],["librari",{"_index":16,"title":{"10":{},"35":{}},"description":{"0":{},"2":{},"9":{},"10":{},"31":{},"32":{},"35":{},"39":{}}}],["librarian",{"_index":70,"title":{"9":{}},"description":{"2":{},"10":{},"14":{},"39":{}}}],["lifecycl",{"_index":61,"title":{"8":{}},"description":{"2":{},"7":{},"39":{}}}],["limit",{"_index":258,"title":{},"description":{"14":{},"18":{},"23":{},"28":{},"29":{},"33":{}}}],["list",{"_index":122,"title":{},"description":{"6":{},"8":{},"10":{},"12":{},"14":{},"27":{},"39":{}}}],["list-blueprint",{"_index":176,"title":{},"description":{"8":{}}}],["list-collect",{"_index":257,"title":{},"description":{"14":{}}}],["list-docu",{"_index":209,"title":{},"description":{"10":{}}}],["list-flow",{"_index":171,"title":{},"description":{"8":{}}}],["list-kg-cor",{"_index":226,"title":{},"description":{"12":{}}}],["list-process",{"_index":217,"title":{},"description":{"10":{}}}],["liter",{"_index":533,"title":{},"description":{"23":{}}}],["llm",{"_index":320,"title":{"19":{}},"description":{"17":{},"18":{},"19":{},"20":{},"22":{},"29":{}}}],["load",{"_index":94,"title":{"31":{},"32":{}},"description":{"2":{},"12":{},"27":{},"31":{},"32":{},"36":{},"39":{}}}],["load-kg-cor",{"_index":240,"title":{},"description":{"12":{}}}],["long-term",{"_index":815,"title":{},"description":{"37":{}}}],["low",{"_index":605,"title":{},"description":{"25":{},"39":{}}}],["low-level",{"_index":615,"title":{},"description":{"26":{}}}],["lower",{"_index":344,"title":{},"description":{"17":{},"39":{}}}],["m",{"_index":798,"title":{},"description":{"36":{},"37":{}}}],["main",{"_index":391,"title":{},"description":{"18":{}}}],["maintain",{"_index":310,"title":{},"description":{"16":{}}}],["make",{"_index":53,"title":{},"description":{"1":{},"12":{},"31":{},"32":{}}}],["manag",{"_index":9,"title":{"8":{},"10":{},"12":{},"14":{}},"description":{"0":{},"2":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"39":{}}}],["mani",{"_index":369,"title":{},"description":{"18":{}}}],["map",{"_index":586,"title":{},"description":{"25":{}}}],["marker",{"_index":235,"title":{},"description":{"12":{},"37":{}}}],["match",{"_index":464,"title":{},"description":{"21":{},"23":{},"25":{},"26":{},"27":{},"30":{},"33":{},"39":{}}}],["max",{"_index":539,"title":{},"description":{"23":{},"33":{}}}],["max-path-length",{"_index":360,"title":{},"description":{"18":{}}}],["max-subgraph-s",{"_index":375,"title":{},"description":{"18":{}}}],["max_length",{"_index":438,"title":{},"description":{"20":{}}}],["mcp",{"_index":481,"title":{"22":{}},"description":{"22":{}}}],["mcp-tool",{"_index":98,"title":{},"description":{"2":{},"39":{}}}],["mean",{"_index":456,"title":{},"description":{"21":{},"29":{}}}],["medium",{"_index":602,"title":{},"description":{"25":{}}}],["messag",{"_index":114,"title":{},"description":{"4":{},"12":{},"16":{},"17":{},"18":{},"19":{},"36":{},"37":{},"39":{}}}],["messagepack",{"_index":792,"title":{},"description":{"36":{},"37":{}}}],["metadata",{"_index":76,"title":{"14":{}},"description":{"2":{},"10":{},"12":{},"13":{},"14":{},"27":{},"29":{},"31":{},"32":{},"36":{},"37":{},"39":{}}}],["metric",{"_index":869,"title":{"40":{},"41":{},"42":{}},"description":{"40":{},"41":{},"42":{}}}],["metric_nam",{"_index":878,"title":{},"description":{"41":{}}}],["metric_name{label=\"valu",{"_index":880,"title":{},"description":{"41":{}}}],["microsoft",{"_index":739,"title":{},"description":{"32":{}}}],["migrat",{"_index":753,"title":{},"description":{"32":{},"36":{},"37":{}}}],["min",{"_index":772,"title":{},"description":{"33":{}}}],["miss",{"_index":346,"title":{},"description":{"17":{},"24":{},"25":{}}}],["ml",{"_index":467,"title":{},"description":{"21":{}}}],["mode",{"_index":289,"title":{},"description":{"16":{}}}],["model",{"_index":138,"title":{"22":{}},"description":{"6":{},"21":{},"22":{},"24":{}}}],["modifi",{"_index":588,"title":{},"description":{"25":{}}}],["monitor",{"_index":870,"title":{},"description":{"40":{},"41":{}}}],["more",{"_index":119,"title":{},"description":{"6":{},"17":{},"18":{},"23":{},"30":{}}}],["move",{"_index":804,"title":{},"description":{"36":{},"37":{}}}],["multi-hop",{"_index":387,"title":{},"description":{"18":{}}}],["multi-turn",{"_index":309,"title":{},"description":{"16":{}}}],["multipl",{"_index":232,"title":{},"description":{"12":{},"16":{},"17":{},"18":{},"19":{},"31":{},"36":{},"39":{}}}],["multiplex",{"_index":33,"title":{"39":{}},"description":{"0":{},"39":{}}}],["my-flow",{"_index":832,"title":{},"description":{"39":{}}}],["n",{"_index":327,"title":{},"description":{"17":{},"28":{},"29":{},"30":{}}}],["name",{"_index":101,"title":{"3":{}},"description":{"8":{},"14":{},"22":{},"24":{},"30":{}}}],["natur",{"_index":274,"title":{"25":{}},"description":{"16":{},"25":{},"26":{}}}],["navig",{"_index":669,"title":{},"description":{"28":{}}}],["need",{"_index":144,"title":{},"description":{"6":{},"17":{},"18":{},"19":{},"24":{},"25":{},"26":{},"27":{}}}],["nest",{"_index":549,"title":{},"description":{"24":{},"27":{}}}],["nestedfield",{"_index":567,"title":{},"description":{"24":{}}}],["nestedobject",{"_index":566,"title":{},"description":{"24":{}}}],["new",{"_index":153,"title":{},"description":{"8":{},"12":{}}}],["next",{"_index":811,"title":{},"description":{"37":{}}}],["nlp",{"_index":575,"title":{"25":{}},"description":{"25":{},"26":{}}}],["nlp-queri",{"_index":90,"title":{},"description":{"2":{},"39":{}}}],["non-block",{"_index":820,"title":{},"description":{"39":{}}}],["non-techn",{"_index":584,"title":{},"description":{"25":{}}}],["none",{"_index":707,"title":{},"description":{"31":{},"32":{}}}],["null",{"_index":617,"title":{},"description":{"26":{}}}],["o",{"_index":525,"title":{},"description":{"23":{},"33":{}}}],["object",{"_index":432,"title":{},"description":{"20":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"39":{}}}],["observ",{"_index":295,"title":{},"description":{"16":{}}}],["obtain",{"_index":42,"title":{},"description":{"1":{},"28":{},"29":{},"30":{}}}],["occur",{"_index":300,"title":{},"description":{"16":{}}}],["offset",{"_index":768,"title":{},"description":{"33":{}}}],["older",{"_index":719,"title":{},"description":{"31":{}}}],["omit",{"_index":520,"title":{},"description":{"23":{},"39":{}}}],["on",{"_index":478,"title":{},"description":{"21":{},"24":{},"26":{},"27":{},"39":{}}}],["on-demand",{"_index":198,"title":{},"description":{"10":{}}}],["ongo",{"_index":216,"title":{},"description":{"10":{}}}],["opaqu",{"_index":37,"title":{},"description":{"1":{}}}],["open('document.pdf",{"_index":744,"title":{},"description":{"32":{}}}],["oper",{"_index":28,"title":{},"description":{"0":{},"2":{},"6":{},"8":{},"10":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"39":{}}}],["operationname($var",{"_index":561,"title":{},"description":{"24":{}}}],["optim",{"_index":418,"title":{},"description":{"19":{}}}],["option",{"_index":210,"title":{},"description":{"10":{},"14":{},"16":{},"18":{},"20":{},"23":{},"27":{},"30":{},"31":{},"32":{},"33":{},"35":{},"39":{},"42":{}}}],["order",{"_index":672,"title":{},"description":{"28":{},"29":{},"33":{},"39":{}}}],["organ",{"_index":194,"title":{},"description":{"10":{},"12":{},"14":{},"31":{}}}],["organiz",{"_index":250,"title":{},"description":{"14":{}}}],["out",{"_index":851,"title":{},"description":{"39":{}}}],["out-token",{"_index":417,"title":{},"description":{"19":{}}}],["output",{"_index":433,"title":{},"description":{"20":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{}}}],["output_format",{"_index":435,"title":{},"description":{"20":{}}}],["over",{"_index":315,"title":{"24":{}},"description":{"17":{},"18":{},"19":{},"26":{},"39":{}}}],["overhead",{"_index":823,"title":{},"description":{"39":{}}}],["overlap",{"_index":682,"title":{},"description":{"29":{},"31":{},"32":{}}}],["overview",{"_index":0,"title":{"0":{}},"description":{"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"36":{},"37":{},"39":{},"41":{}}}],["p",{"_index":523,"title":{},"description":{"23":{},"33":{}}}],["page",{"_index":741,"title":{},"description":{"32":{}}}],["paper",{"_index":752,"title":{},"description":{"32":{}}}],["param",{"_index":159,"title":{},"description":{"8":{}}}],["paramet",{"_index":64,"title":{},"description":{"2":{},"6":{},"8":{},"17":{},"18":{},"22":{},"35":{},"36":{},"37":{},"39":{},"41":{},"42":{}}}],["parameter",{"_index":568,"title":{},"description":{"24":{}}}],["parameter-typ",{"_index":140,"title":{},"description":{"6":{}}}],["pars",{"_index":585,"title":{},"description":{"25":{}}}],["partial",{"_index":412,"title":{},"description":{"19":{},"24":{},"26":{}}}],["pass",{"_index":36,"title":{},"description":{"1":{},"2":{},"17":{},"18":{},"20":{},"24":{}}}],["passag",{"_index":677,"title":{},"description":{"29":{}}}],["path",{"_index":358,"title":{"42":{}},"description":{"18":{},"39":{},"41":{},"42":{}}}],["pattern",{"_index":514,"title":{},"description":{"23":{},"26":{},"33":{}}}],["pattern-bas",{"_index":512,"title":{"23":{}},"description":{}}],["payload",{"_index":839,"title":{},"description":{"39":{}}}],["pdf",{"_index":734,"title":{"32":{}},"description":{"32":{}}}],["pdf→text",{"_index":735,"title":{},"description":{"32":{}}}],["per",{"_index":373,"title":{},"description":{"18":{},"39":{}}}],["perform",{"_index":508,"title":{},"description":{"22":{},"23":{},"26":{}}}],["persist",{"_index":192,"title":{},"description":{"10":{},"12":{},"39":{}}}],["person(id",{"_index":570,"title":{},"description":{"24":{}}}],["pipelin",{"_index":644,"title":{},"description":{"27":{},"31":{},"32":{}}}],["placehold",{"_index":434,"title":{},"description":{"20":{}}}],["plain",{"_index":446,"title":{},"description":{"20":{},"22":{},"25":{}}}],["point",{"_index":186,"title":{},"description":{"8":{}}}],["pool",{"_index":868,"title":{},"description":{"39":{}}}],["popul",{"_index":806,"title":{},"description":{"36":{}}}],["portabl",{"_index":737,"title":{},"description":{"32":{}}}],["posit",{"_index":686,"title":{},"description":{"29":{}}}],["post",{"_index":846,"title":{},"description":{"39":{}}}],["potenti",{"_index":694,"title":{},"description":{"30":{}}}],["power",{"_index":461,"title":{},"description":{"21":{}}}],["precis",{"_index":616,"title":{},"description":{"26":{}}}],["predefin",{"_index":547,"title":{},"description":{"24":{}}}],["predic",{"_index":518,"title":{},"description":{"23":{}}}],["present",{"_index":844,"title":{},"description":{"39":{}}}],["previou",{"_index":284,"title":{},"description":{"16":{}}}],["price",{"_index":139,"title":{},"description":{"6":{}}}],["probabl",{"_index":600,"title":{},"description":{"25":{}}}],["problem",{"_index":276,"title":{},"description":{"16":{}}}],["process",{"_index":78,"title":{},"description":{"2":{},"10":{},"16":{},"17":{},"18":{},"21":{},"25":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"36":{},"37":{},"39":{},"41":{}}}],["processor",{"_index":168,"title":{},"description":{"8":{}}}],["product",{"_index":692,"title":{},"description":{"30":{}}}],["prometheu",{"_index":871,"title":{"41":{},"42":{}},"description":{"41":{},"42":{}}}],["prompt",{"_index":84,"title":{"20":{}},"description":{"2":{},"6":{},"19":{},"20":{},"39":{}}}],["properti",{"_index":524,"title":{},"description":{"23":{},"31":{},"32":{}}}],["protocol",{"_index":483,"title":{"22":{}},"description":{"22":{},"36":{},"37":{},"39":{}}}],["proven",{"_index":297,"title":{},"description":{"16":{},"17":{},"18":{},"19":{}}}],["provid",{"_index":2,"title":{},"description":{"0":{},"16":{},"17":{},"18":{},"19":{},"22":{},"39":{}}}],["proxi",{"_index":872,"title":{},"description":{"41":{},"42":{}}}],["pure",{"_index":396,"title":{},"description":{"19":{},"22":{}}}],["purpos",{"_index":254,"title":{},"description":{"14":{}}}],["put",{"_index":126,"title":{},"description":{"6":{}}}],["put-blueprint",{"_index":156,"title":{},"description":{"8":{}}}],["put-kg-cor",{"_index":236,"title":{},"description":{"12":{}}}],["python",{"_index":407,"title":{},"description":{"19":{},"32":{}}}],["quantum",{"_index":833,"title":{},"description":{"39":{}}}],["queri",{"_index":88,"title":{"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"33":{}},"description":{"2":{},"10":{},"12":{},"15":{},"17":{},"18":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"36":{},"37":{},"39":{},"41":{}}}],["question",{"_index":271,"title":{"26":{}},"description":{"16":{},"19":{},"25":{},"26":{},"39":{}}}],["queu",{"_index":212,"title":{},"description":{"10":{},"31":{},"32":{}}}],["queue",{"_index":175,"title":{},"description":{"8":{},"41":{}}}],["quote_char",{"_index":657,"title":{},"description":{"27":{}}}],["rag",{"_index":19,"title":{"17":{},"18":{}},"description":{"0":{},"2":{},"17":{},"18":{},"21":{},"28":{},"29":{},"39":{}}}],["rate",{"_index":874,"title":{},"description":{"41":{}}}],["ratio",{"_index":718,"title":{},"description":{"31":{}}}],["raw",{"_index":684,"title":{},"description":{"29":{},"31":{},"35":{}}}],["rb",{"_index":745,"title":{},"description":{"32":{}}}],["rdf",{"_index":222,"title":{},"description":{"12":{},"23":{},"26":{},"28":{},"31":{},"32":{}}}],["rdfvalu",{"_index":528,"title":{},"description":{"23":{},"36":{},"37":{}}}],["read/writ",{"_index":509,"title":{},"description":{"22":{}}}],["real-tim",{"_index":824,"title":{},"description":{"39":{}}}],["reason",{"_index":269,"title":{"16":{}},"description":{"16":{},"18":{},"19":{}}}],["receiv",{"_index":231,"title":{},"description":{"12":{},"17":{},"18":{},"19":{},"20":{},"27":{},"36":{},"37":{}}}],["recommend",{"_index":650,"title":{},"description":{"27":{}}}],["record",{"_index":696,"title":{},"description":{"30":{}}}],["record_path",{"_index":660,"title":{},"description":{"27":{}}}],["recoveri",{"_index":813,"title":{},"description":{"37":{}}}],["reduc",{"_index":822,"title":{},"description":{"39":{}}}],["refer",{"_index":675,"title":{},"description":{"28":{}}}],["regex",{"_index":777,"title":{},"description":{"33":{}}}],["regist",{"_index":496,"title":{},"description":{"22":{}}}],["registr",{"_index":503,"title":{},"description":{"22":{}}}],["relat",{"_index":392,"title":{},"description":{"18":{},"21":{},"24":{},"28":{},"29":{}}}],["relationship",{"_index":164,"title":{},"description":{"8":{},"18":{},"19":{},"23":{},"24":{},"25":{}}}],["releas",{"_index":169,"title":{},"description":{"8":{}}}],["relev",{"_index":347,"title":{},"description":{"17":{},"18":{},"29":{}}}],["remov",{"_index":190,"title":{},"description":{"10":{},"12":{},"14":{}}}],["remove-docu",{"_index":207,"title":{},"description":{"10":{}}}],["repeat",{"_index":451,"title":{},"description":{"20":{}}}],["replac",{"_index":727,"title":{},"description":{"31":{}}}],["replic",{"_index":807,"title":{},"description":{"36":{},"37":{}}}],["repres",{"_index":223,"title":{},"description":{"12":{}}}],["represent",{"_index":454,"title":{},"description":{"21":{}}}],["req-1",{"_index":854,"title":{},"description":{"39":{}}}],["req-123",{"_index":830,"title":{},"description":{"39":{}}}],["req-2",{"_index":855,"title":{},"description":{"39":{}}}],["req-3",{"_index":857,"title":{},"description":{"39":{}}}],["req-456",{"_index":831,"title":{},"description":{"39":{}}}],["request",{"_index":281,"title":{},"description":{"16":{},"20":{},"21":{},"22":{},"24":{},"31":{},"36":{},"39":{},"41":{}}}],["request/quest",{"_index":411,"title":{},"description":{"19":{}}}],["request/respons",{"_index":821,"title":{},"description":{"39":{}}}],["requir",{"_index":23,"title":{},"description":{"0":{},"2":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"35":{},"39":{}}}],["research",{"_index":751,"title":{},"description":{"32":{}}}],["resolut",{"_index":697,"title":{},"description":{"30":{}}}],["resolv",{"_index":48,"title":{},"description":{"1":{},"2":{},"8":{},"39":{}}}],["resourc",{"_index":170,"title":{},"description":{"8":{},"33":{},"41":{}}}],["respond",{"_index":409,"title":{},"description":{"19":{}}}],["respons",{"_index":109,"title":{"4":{}},"description":{"12":{},"16":{},"17":{},"18":{},"19":{},"20":{},"22":{},"25":{},"26":{},"29":{},"30":{},"31":{},"32":{},"35":{},"36":{},"37":{},"39":{},"41":{}}}],["rest",{"_index":818,"title":{},"description":{"39":{}}}],["restor",{"_index":794,"title":{},"description":{"36":{}}}],["result",{"_index":259,"title":{"26":{}},"description":{"14":{},"16":{},"22":{},"23":{},"25":{},"26":{},"28":{},"29":{},"31":{},"33":{}}}],["retriev",{"_index":125,"title":{"17":{},"18":{}},"description":{"6":{},"8":{},"12":{},"17":{},"18":{},"19":{},"21":{},"22":{},"28":{},"29":{},"30":{},"31":{},"35":{}}}],["retrieval-aug",{"_index":314,"title":{},"description":{"17":{},"18":{}}}],["return",{"_index":110,"title":{},"description":{"4":{},"12":{},"14":{},"17":{},"18":{},"19":{},"22":{},"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"35":{},"36":{},"41":{}}}],["reus",{"_index":867,"title":{},"description":{"39":{}}}],["reusabl",{"_index":428,"title":{},"description":{"20":{}}}],["review",{"_index":603,"title":{},"description":{"25":{}}}],["role",{"_index":402,"title":{},"description":{"19":{}}}],["root_el",{"_index":659,"title":{},"description":{"27":{}}}],["rout",{"_index":845,"title":{},"description":{"39":{}}}],["row",{"_index":89,"title":{"24":{},"30":{}},"description":{"2":{},"24":{},"26":{},"30":{}}}],["row-embed",{"_index":93,"title":{},"description":{"2":{}}}],["row-ori",{"_index":545,"title":{},"description":{"24":{}}}],["run",{"_index":24,"title":{},"description":{"0":{},"6":{},"8":{},"12":{},"22":{},"31":{},"32":{}}}],["s",{"_index":522,"title":{},"description":{"23":{},"33":{}}}],["s/p/o",{"_index":526,"title":{},"description":{"23":{}}}],["same",{"_index":817,"title":{},"description":{"39":{}}}],["sampl",{"_index":638,"title":{},"description":{"27":{}}}],["schema",{"_index":505,"title":{},"description":{"22":{},"24":{},"25":{},"27":{},"30":{},"39":{}}}],["schema-awar",{"_index":578,"title":{},"description":{"25":{}}}],["schema-driven",{"_index":546,"title":{},"description":{"24":{}}}],["schema-select",{"_index":652,"title":{},"description":{"27":{}}}],["scope",{"_index":59,"title":{},"description":{"2":{},"18":{},"25":{}}}],["score",{"_index":580,"title":{},"description":{"25":{},"28":{},"29":{},"30":{}}}],["scrape",{"_index":885,"title":{},"description":{"41":{}}}],["scratch",{"_index":651,"title":{},"description":{"27":{}}}],["script",{"_index":510,"title":{},"description":{"22":{}}}],["search",{"_index":317,"title":{"30":{}},"description":{"17":{},"21":{},"22":{},"28":{},"29":{},"30":{}}}],["searchabl",{"_index":712,"title":{},"description":{"31":{},"32":{}}}],["see",{"_index":848,"title":{},"description":{"39":{}}}],["select",{"_index":759,"title":{},"description":{"33":{}}}],["semant",{"_index":318,"title":{"30":{}},"description":{"17":{},"21":{},"28":{},"29":{},"30":{}}}],["send",{"_index":282,"title":{},"description":{"16":{},"31":{},"39":{}}}],["sent",{"_index":713,"title":{},"description":{"31":{},"36":{},"37":{}}}],["separ",{"_index":135,"title":{},"description":{"6":{},"26":{}}}],["server",{"_index":504,"title":{},"description":{"22":{},"39":{}}}],["servic",{"_index":6,"title":{"2":{},"6":{},"15":{},"16":{},"20":{},"39":{}},"description":{"0":{},"1":{},"2":{},"6":{},"8":{},"10":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"39":{}}}],["service-specif",{"_index":838,"title":{},"description":{"39":{}}}],["session",{"_index":331,"title":{},"description":{"17":{},"18":{},"39":{}}}],["set",{"_index":263,"title":{},"description":{"14":{},"19":{},"23":{},"33":{},"41":{}}}],["share",{"_index":182,"title":{},"description":{"8":{}}}],["show",{"_index":179,"title":{},"description":{"8":{},"25":{}}}],["signal",{"_index":248,"title":{},"description":{"12":{},"37":{}}}],["similar",{"_index":319,"title":{"28":{},"29":{}},"description":{"17":{},"21":{},"25":{},"28":{},"29":{},"30":{}}}],["simpl",{"_index":501,"title":{},"description":{"22":{},"26":{}}}],["simpler",{"_index":629,"title":{},"description":{"26":{}}}],["simplest",{"_index":612,"title":{},"description":{"26":{}}}],["simultan",{"_index":850,"title":{},"description":{"39":{}}}],["singl",{"_index":308,"title":{},"description":{"16":{},"17":{},"18":{},"19":{},"21":{},"24":{},"39":{}}}],["size",{"_index":362,"title":{},"description":{"18":{},"29":{},"35":{}}}],["slower",{"_index":343,"title":{},"description":{"17":{},"18":{}}}],["sourc",{"_index":685,"title":{},"description":{"29":{},"31":{},"32":{},"37":{}}}],["sparql",{"_index":757,"title":{"33":{}},"description":{"33":{}}}],["sparql-queri",{"_index":92,"title":{},"description":{"2":{}}}],["specif",{"_index":124,"title":{},"description":{"6":{},"17":{},"19":{},"23":{},"41":{}}}],["specifi",{"_index":516,"title":{},"description":{"23":{},"30":{},"31":{}}}],["split",{"_index":679,"title":{},"description":{"29":{},"31":{},"32":{}}}],["standard",{"_index":485,"title":{},"description":{"22":{},"24":{},"26":{},"33":{},"41":{}}}],["start",{"_index":152,"title":{},"description":{"8":{},"10":{},"18":{},"27":{}}}],["start-flow",{"_index":151,"title":{},"description":{"8":{}}}],["start-process",{"_index":211,"title":{},"description":{"10":{}}}],["start/stop/manag",{"_index":149,"title":{},"description":{"6":{},"8":{}}}],["state",{"_index":283,"title":{},"description":{"16":{}}}],["statu",{"_index":201,"title":{},"description":{"10":{},"31":{},"32":{},"41":{}}}],["stay",{"_index":363,"title":{},"description":{"18":{}}}],["step",{"_index":286,"title":{},"description":{"16":{},"26":{}}}],["still",{"_index":720,"title":{},"description":{"31":{}}}],["stop",{"_index":166,"title":{},"description":{"8":{},"10":{}}}],["stop-flow",{"_index":165,"title":{},"description":{"8":{}}}],["stop-process",{"_index":215,"title":{},"description":{"10":{}}}],["storag",{"_index":15,"title":{},"description":{"0":{},"12":{},"21":{},"31":{},"32":{},"36":{},"37":{}}}],["store",{"_index":134,"title":{},"description":{"6":{},"8":{},"12":{},"20":{},"28":{},"29":{},"30":{},"31":{},"32":{},"35":{}}}],["store/retriev",{"_index":148,"title":{},"description":{"6":{},"8":{}}}],["str",{"_index":776,"title":{},"description":{"33":{}}}],["stream",{"_index":230,"title":{"35":{}},"description":{"12":{},"16":{},"17":{},"18":{},"19":{},"20":{},"35":{},"36":{},"37":{},"39":{}}}],["string",{"_index":52,"title":{},"description":{"1":{},"20":{},"26":{},"29":{},"39":{}}}],["strong",{"_index":551,"title":{},"description":{"24":{}}}],["structur",{"_index":56,"title":{"24":{},"25":{},"26":{},"27":{},"30":{}},"description":{"1":{},"8":{},"18":{},"20":{},"22":{},"24":{},"25":{},"26":{},"27":{},"30":{},"39":{}}}],["structured-diag",{"_index":99,"title":{},"description":{"2":{},"39":{}}}],["structured-queri",{"_index":91,"title":{},"description":{"2":{},"39":{}}}],["subfield1",{"_index":564,"title":{},"description":{"24":{}}}],["subfield2",{"_index":565,"title":{},"description":{"24":{}}}],["subgraph",{"_index":352,"title":{},"description":{"18":{}}}],["subject",{"_index":517,"title":{},"description":{"23":{}}}],["subject-predicate-object",{"_index":513,"title":{},"description":{"23":{}}}],["subsequ",{"_index":865,"title":{},"description":{"39":{}}}],["substitut",{"_index":427,"title":{},"description":{"20":{}}}],["success",{"_index":840,"title":{},"description":{"39":{}}}],["suffici",{"_index":419,"title":{},"description":{"19":{}}}],["suggest",{"_index":607,"title":{},"description":{"25":{}}}],["sum",{"_index":770,"title":{},"description":{"33":{}}}],["summar",{"_index":437,"title":{},"description":{"20":{}}}],["support",{"_index":460,"title":{},"description":{"21":{},"23":{},"27":{},"32":{},"33":{},"39":{},"41":{}}}],["surviv",{"_index":715,"title":{},"description":{"31":{}}}],["synchron",{"_index":729,"title":{},"description":{"31":{}}}],["syntax",{"_index":519,"title":{},"description":{"23":{}}}],["synthes",{"_index":321,"title":{},"description":{"17":{}}}],["system",{"_index":121,"title":{},"description":{"6":{},"8":{},"19":{},"20":{},"21":{},"22":{},"24":{},"26":{},"32":{},"36":{},"37":{},"40":{},"41":{}}}],["system-level",{"_index":619,"title":{},"description":{"26":{}}}],["system-wid",{"_index":58,"title":{},"description":{"2":{}}}],["t",{"_index":797,"title":{},"description":{"36":{},"37":{}}}],["tabl",{"_index":761,"title":{},"description":{"33":{}}}],["tag",{"_index":255,"title":{},"description":{"14":{}}}],["take",{"_index":272,"title":{},"description":{"16":{}}}],["taken",{"_index":294,"title":{},"description":{"16":{}}}],["target",{"_index":349,"title":{},"description":{"17":{},"36":{}}}],["task",{"_index":218,"title":{},"description":{"10":{},"19":{},"20":{}}}],["tcp/tl",{"_index":866,"title":{},"description":{"39":{}}}],["templat",{"_index":136,"title":{},"description":{"6":{},"20":{},"33":{}}}],["template-bas",{"_index":424,"title":{"20":{}},"description":{}}],["term",{"_index":442,"title":{},"description":{"20":{}}}],["termin",{"_index":167,"title":{},"description":{"8":{}}}],["text",{"_index":20,"title":{"19":{},"21":{},"29":{},"31":{}},"description":{"0":{},"19":{},"20":{},"21":{},"22":{},"23":{},"29":{},"30":{},"31":{},"32":{},"41":{}}}],["text-complet",{"_index":83,"title":{},"description":{"2":{},"19":{},"39":{}}}],["text-embedding-3-larg",{"_index":473,"title":{},"description":{"21":{}}}],["text-embedding-3-smal",{"_index":472,"title":{},"description":{"21":{}}}],["text-embedding-ada-002",{"_index":470,"title":{},"description":{"21":{}}}],["text-load",{"_index":95,"title":{},"description":{"2":{},"21":{},"27":{},"39":{}}}],["text_cont",{"_index":721,"title":{},"description":{"31":{}}}],["tg-create-api-key",{"_index":46,"title":{},"description":{"1":{}}}],["tg-login",{"_index":45,"title":{},"description":{"1":{}}}],["third-parti",{"_index":492,"title":{},"description":{"22":{}}}],["those",{"_index":701,"title":{},"description":{"30":{}}}],["thought",{"_index":277,"title":{},"description":{"16":{},"39":{}}}],["three",{"_index":621,"title":{},"description":{"26":{}}}],["through",{"_index":197,"title":{},"description":{"10":{},"22":{},"31":{},"32":{}}}],["throughput",{"_index":875,"title":{},"description":{"41":{}}}],["tier",{"_index":57,"title":{"2":{}},"description":{}}],["time",{"_index":479,"title":{},"description":{"21":{},"41":{}}}],["timeout",{"_index":115,"title":{},"description":{"4":{},"24":{}}}],["titl",{"_index":204,"title":{},"description":{"10":{},"31":{}}}],["togeth",{"_index":238,"title":{},"description":{"12":{}}}],["token",{"_index":39,"title":{},"description":{"1":{},"2":{},"6":{},"8":{},"10":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"39":{},"41":{}}}],["token-cost",{"_index":137,"title":{},"description":{"6":{}}}],["tool",{"_index":482,"title":{"22":{}},"description":{"22":{},"24":{}}}],["tool-specif",{"_index":500,"title":{},"description":{"22":{}}}],["top",{"_index":326,"title":{},"description":{"17":{},"28":{},"29":{},"30":{}}}],["total",{"_index":376,"title":{},"description":{"18":{}}}],["track",{"_index":200,"title":{},"description":{"10":{},"19":{},"32":{}}}],["trade-off",{"_index":626,"title":{},"description":{"26":{}}}],["transfer",{"_index":785,"title":{},"description":{"35":{}}}],["transform",{"_index":450,"title":{},"description":{"20":{},"21":{},"25":{}}}],["travers",{"_index":357,"title":{},"description":{"18":{},"24":{}}}],["tripl",{"_index":29,"title":{"23":{},"36":{},"37":{}},"description":{"0":{},"2":{},"12":{},"16":{},"17":{},"18":{},"23":{},"24":{},"26":{},"28":{},"31":{},"32":{},"33":{},"36":{},"37":{},"39":{}}}],["triple-limit",{"_index":372,"title":{},"description":{"18":{}}}],["triples/subgraph",{"_index":670,"title":{},"description":{"28":{}}}],["true",{"_index":247,"title":{},"description":{"12":{},"16":{},"17":{},"18":{},"19":{},"20":{},"23":{},"28":{},"36":{},"37":{},"39":{}}}],["true/fals",{"_index":762,"title":{},"description":{"33":{}}}],["trustgraph",{"_index":116,"title":{},"description":{"6":{},"39":{}}}],["tupl",{"_index":796,"title":{},"description":{"36":{},"37":{}}}],["two",{"_index":440,"title":{},"description":{"20":{},"26":{}}}],["type",{"_index":112,"title":{},"description":{"4":{},"6":{},"8":{},"16":{},"20":{},"23":{},"24":{},"25":{},"26":{},"27":{},"33":{},"39":{},"41":{}}}],["type-saf",{"_index":550,"title":{},"description":{"24":{}}}],["typic",{"_index":265,"title":{},"description":{"14":{},"29":{}}}],["uncondition",{"_index":863,"title":{},"description":{"39":{}}}],["understand",{"_index":270,"title":{},"description":{"16":{},"18":{},"25":{},"26":{},"27":{}}}],["understood",{"_index":583,"title":{},"description":{"25":{}}}],["union",{"_index":767,"title":{},"description":{"33":{}}}],["uniqu",{"_index":183,"title":{},"description":{"8":{},"14":{},"20":{},"39":{}}}],["unit",{"_index":221,"title":{},"description":{"12":{},"14":{}}}],["unknown",{"_index":636,"title":{},"description":{"27":{}}}],["unlik",{"_index":476,"title":{},"description":{"21":{}}}],["unload",{"_index":243,"title":{},"description":{"12":{}}}],["unload-kg-cor",{"_index":242,"title":{},"description":{"12":{}}}],["up",{"_index":359,"title":{},"description":{"18":{},"23":{}}}],["updat",{"_index":128,"title":{},"description":{"6":{},"8":{},"12":{},"14":{},"31":{}}}],["update-collect",{"_index":260,"title":{},"description":{"14":{}}}],["uri",{"_index":664,"title":{},"description":{"28":{},"36":{},"37":{}}}],["url",{"_index":203,"title":{},"description":{"10":{},"31":{},"39":{}}}],["us",{"_index":79,"title":{},"description":{"2":{},"3":{},"6":{},"8":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"36":{},"37":{},"39":{},"41":{}}}],["usag",{"_index":414,"title":{},"description":{"19":{},"41":{}}}],["user",{"_index":8,"title":{},"description":{"0":{},"2":{},"16":{},"19":{},"25":{}}}],["user-provid",{"_index":158,"title":{},"description":{"8":{}}}],["utf-8",{"_index":704,"title":{},"description":{"31":{}}}],["util",{"_index":97,"title":{},"description":{"2":{},"39":{}}}],["v",{"_index":530,"title":{},"description":{"23":{},"28":{},"36":{},"37":{}}}],["valu",{"_index":129,"title":{},"description":{"6":{},"8":{},"23":{},"27":{},"28":{},"30":{},"33":{},"39":{}}}],["var",{"_index":563,"title":{},"description":{"24":{}}}],["vari",{"_index":475,"title":{},"description":{"21":{}}}],["variabl",{"_index":426,"title":{},"description":{"20":{},"24":{},"25":{},"33":{}}}],["vector",{"_index":224,"title":{"21":{}},"description":{"12":{},"21":{},"28":{},"29":{},"30":{},"31":{},"32":{},"36":{},"37":{}}}],["verifi",{"_index":731,"title":{},"description":{"31":{},"32":{}}}],["via",{"_index":43,"title":{},"description":{"1":{},"2":{},"8":{},"17":{},"20":{},"21":{},"22":{},"24":{},"25":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"41":{}}}],["vs",{"_index":400,"title":{},"description":{"19":{},"26":{}}}],["want",{"_index":420,"title":{},"description":{"19":{},"26":{}}}],["way",{"_index":441,"title":{},"description":{"20":{},"26":{}}}],["weather",{"_index":499,"title":{},"description":{"22":{}}}],["web",{"_index":486,"title":{},"description":{"22":{},"32":{}}}],["websocket",{"_index":32,"title":{"38":{},"39":{}},"description":{"0":{},"38":{},"39":{}}}],["well",{"_index":582,"title":{},"description":{"25":{}}}],["what'",{"_index":388,"title":{},"description":{"18":{}}}],["whose",{"_index":689,"title":{},"description":{"30":{}}}],["window",{"_index":364,"title":{},"description":{"18":{}}}],["within",{"_index":62,"title":{},"description":{"2":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"39":{}}}],["without",{"_index":338,"title":{},"description":{"17":{},"18":{},"19":{},"39":{}}}],["word",{"_index":439,"title":{},"description":{"20":{},"32":{}}}],["workflow",{"_index":590,"title":{},"description":{"25":{},"27":{}}}],["workspac",{"_index":51,"title":{},"description":{"1":{},"2":{},"6":{},"8":{},"10":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"39":{}}}],["workspace-scop",{"_index":11,"title":{"6":{},"8":{},"10":{},"12":{},"14":{}},"description":{"0":{},"2":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"39":{}}}],["write",{"_index":398,"title":{},"description":{"19":{}}}],["ws://localhost:8088/api/v1/socket",{"_index":829,"title":{},"description":{"39":{}}}],["x",{"_index":385,"title":{},"description":{"18":{}}}],["xml",{"_index":635,"title":{},"description":{"27":{}}}],["y",{"_index":386,"title":{},"description":{"18":{}}}]],"pipeline":[]}},"options":{}};
var container = document.getElementById('redoc');
Redoc.hydrate(__redoc_state, container);
</script>
</body>
</html>