trustgraph/docs/api.html

3638 lines
838 KiB
HTML
Raw Normal View History

<!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.3.9">.hoYmkG{width:calc(100% - 40%);padding:0 40px;}/*!sc*/
@media print,screen and (max-width: 75rem){.hoYmkG{width:100%;padding:40px 40px;}}/*!sc*/
.eiTXyS{width:calc(100% - 40%);padding:0 40px;}/*!sc*/
@media print,screen and (max-width: 75rem){.eiTXyS{width:100%;padding:0px 40px;}}/*!sc*/
data-styled.g4[id="sc-hLseeT"]{content:"hoYmkG,eiTXyS,"}/*!sc*/
.eTiIZG{padding:40px 0;}/*!sc*/
.eTiIZG:last-child{min-height:calc(100vh + 1px);}/*!sc*/
.eTiIZG>.eTiIZG:last-child{min-height:initial;}/*!sc*/
@media print,screen and (max-width: 75rem){.eTiIZG{padding:0;}}/*!sc*/
.iUTsUN{padding:40px 0;position:relative;}/*!sc*/
.iUTsUN:last-child{min-height:calc(100vh + 1px);}/*!sc*/
.iUTsUN>.iUTsUN:last-child{min-height:initial;}/*!sc*/
@media print,screen and (max-width: 75rem){.iUTsUN{padding:0;}}/*!sc*/
.iUTsUN: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.g5[id="sc-eDDNvO"]{content:"eTiIZG,iUTsUN,"}/*!sc*/
.dVngAA{width:40%;color:#ffffff;background-color:#263238;padding:0 40px;}/*!sc*/
@media print,screen and (max-width: 75rem){.dVngAA{width:100%;padding:40px 40px;}}/*!sc*/
data-styled.g6[id="sc-jTrPJt"]{content:"dVngAA,"}/*!sc*/
.fYLqku{background-color:#263238;}/*!sc*/
data-styled.g7[id="sc-gLDzao"]{content:"fYLqku,"}/*!sc*/
.cmAaWK{display:flex;width:100%;padding:0;}/*!sc*/
@media print,screen and (max-width: 75rem){.cmAaWK{flex-direction:column;}}/*!sc*/
data-styled.g8[id="sc-iAEyYj"]{content:"cmAaWK,"}/*!sc*/
.ePkAIL{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#333333;}/*!sc*/
data-styled.g9[id="sc-fsQipe"]{content:"ePkAIL,"}/*!sc*/
.bcNKdh{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.g10[id="sc-qRumy"]{content:"bcNKdh,"}/*!sc*/
.AyivY{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.27em;line-height:1.6em;color:#333333;}/*!sc*/
data-styled.g11[id="sc-jsMahD"]{content:"AyivY,"}/*!sc*/
.dEbuTz{color:#ffffff;}/*!sc*/
data-styled.g12[id="sc-kFuwaQ"]{content:"dEbuTz,"}/*!sc*/
.fA-dGxt{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.g13[id="sc-irTswZ"]{content:"fA-dGxt,"}/*!sc*/
.jSIqAu{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
.jSIqAu: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>.jSIqAu::before,h2:hover>.jSIqAu::before,.jSIqAu:hover::before{visibility:visible;}/*!sc*/
data-styled.g14[id="sc-csCMJq"]{content:"jSIqAu,"}/*!sc*/
.cNCXIL{height:18px;width:18px;min-width:18px;vertical-align:middle;float:right;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
.eiOVYa{height:1.3em;width:1.3em;min-width:1.3em;vertical-align:middle;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
.dTZWxX{height:18px;width:18px;min-width:18px;vertical-align:middle;transition:transform 0.2s ease-out;transform:rotateZ(-90deg);}/*!sc*/
.iZiZiV{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*/
.iZiZiV polygon{fill:#1d8127;}/*!sc*/
.kiMFkB{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*/
.kiMFkB polygon{fill:#d41f1c;}/*!sc*/
.ivEQut{height:20px;width:20px;min-width:20px;vertical-align:middle;float:right;transition:transform 0.2s ease-out;transform:rotateZ(0);}/*!sc*/
.ivEQut polygon{fill:white;}/*!sc*/
data-styled.g15[id="sc-fbJfz"]{content:"cNCXIL,eiOVYa,dTZWxX,iZiZiV,kiMFkB,ivEQut,"}/*!sc*/
.kddqHa{border-left:1px solid #7c7cbb;box-sizing:border-box;position:relative;padding:10px 10px 10px 0;}/*!sc*/
@media screen and (max-width: 50rem){.kddqHa{display:block;overflow:hidden;}}/*!sc*/
tr:first-of-type>.kddqHa,tr.last>.kddqHa{border-left-width:0;background-position:top left;background-repeat:no-repeat;background-size:1px 100%;}/*!sc*/
tr:first-of-type>.kddqHa{background-image:linear-gradient(
to bottom,
transparent 0%,
transparent 22px,
#7c7cbb 22px,
#7c7cbb 100%
);}/*!sc*/
tr.last>.kddqHa{background-image:linear-gradient(
to bottom,
#7c7cbb 0%,
#7c7cbb 22px,
transparent 22px,
transparent 100%
);}/*!sc*/
tr.last+tr>.kddqHa{border-left-color:transparent;}/*!sc*/
tr.last:first-child>.kddqHa{background:none;border-left-color:transparent;}/*!sc*/
data-styled.g18[id="sc-hAtEya"]{content:"kddqHa,"}/*!sc*/
.eIujjv{vertical-align:top;line-height:20px;white-space:nowrap;font-size:13px;font-family:Courier,monospace;}/*!sc*/
.eIujjv.deprecated{text-decoration:line-through;color:#707070;}/*!sc*/
data-styled.g20[id="sc-fGFwA-d"]{content:"eIujjv,"}/*!sc*/
.bmauLr{border-bottom:1px solid #9fb4be;padding:10px 0;width:75%;box-sizing:border-box;}/*!sc*/
tr.expanded .bmauLr{border-bottom:none;}/*!sc*/
@media screen and (max-width: 50rem){.bmauLr{padding:0 20px;border-bottom:none;border-left:1px solid #7c7cbb;}tr.last>.bmauLr{border-left:none;}}/*!sc*/
data-styled.g21[id="sc-blLsxE"]{content:"bmauLr,"}/*!sc*/
.bEKmDE{color:#7c7cbb;font-family:Courier,monospace;margin-right:10px;}/*!sc*/
.bEKmDE::before{content:'';display:inline-block;vertical-align:middle;width:10px;height:1px;background:#7c7cbb;}/*!sc*/
.bEKmDE::after{content:'';display:inline-block;vertical-align:middle;width:1px;background:#7c7cbb;height:7px;}/*!sc*/
data-styled.g22[id="sc-ieZDjf"]{content:"bEKmDE,"}/*!sc*/
.dybric{border-collapse:separate;border-radius:3px;font-size:14px;border-spacing:0;width:100%;}/*!sc*/
.dybric >tr{vertical-align:middle;}/*!sc*/
@media screen and (max-width: 50rem){.dybric{display:block;}.dybric >tr,.dybric >tbody>tr{display:block;}}/*!sc*/
@media screen and (max-width: 50rem) and (-ms-high-contrast:none){.dybric td{float:left;width:100%;}}/*!sc*/
.dybric .sc-dKfzgG,.dybric .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG,.dybric .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG{margin:1em;margin-right:0;background:#fafafa;}/*!sc*/
.dybric .sc-dKfzgG .sc-dKfzgG,.dybric .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG,.dybric .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG .sc-dKfzgG{background:#ffffff;}/*!sc*/
data-styled.g24[id="sc-hIqOWV"]{content:"dybric,"}/*!sc*/
.lbIFgo >ul{list-style:none;padding:0;margin:0;margin:0 -5px;}/*!sc*/
.lbIFgo >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*/
.lbIFgo >ul >li.react-tabs__tab--selected{color:#333333;background:#ffffff;}/*!sc*/
.lbIFgo >ul >li.react-tabs__tab--selected:focus{outline:auto;}/*!sc*/
.lbIFgo >ul >li:only-child{flex:none;min-width:100px;}/*!sc*/
.lbIFgo >ul >li.tab-success{color:#1d8127;}/*!sc*/
.lbIFgo >ul >li.tab-redirect{color:#ffa500;}/*!sc*/
.lbIFgo >ul >li.tab-info{color:#87ceeb;}/*!sc*/
.lbIFgo >ul >li.tab-error{color:#d41f1c;}/*!sc*/
.lbIFgo >.react-tabs__tab-panel{background:#11171a;}/*!sc*/
.lbIFgo >.react-tabs__tab-panel>div,.lbIFgo >.react-tabs__tab-panel>pre{padding:20px;margin:0;}/*!sc*/
.lbIFgo >.react-tabs__tab-panel>div>pre{padding:0;}/*!sc*/
data-styled.g30[id="sc-cyRfQY"]{content:"lbIFgo,"}/*!sc*/
.dXXcln code[class*='language-'],.dXXcln 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{.dXXcln code[class*='language-'],.dXXcln pre[class*='language-']{text-shadow:none;}}/*!sc*/
.dXXcln pre[class*='language-']{padding:1em;margin:0.5em 0;overflow:auto;}/*!sc*/
.dXXcln .token.comment,.dXXcln .token.prolog,.dXXcln .token.doctype,.dXXcln .token.cdata{color:hsl(30, 20%, 50%);}/*!sc*/
.dXXcln .token.punctuation{opacity:0.7;}/*!sc*/
.dXXcln .namespace{opacity:0.7;}/*!sc*/
.dXXcln .token.property,.dXXcln .token.tag,.dXXcln .token.number,.dXXcln .token.constant,.dXXcln .token.symbol{color:#4a8bb3;}/*!sc*/
.dXXcln .token.boolean{color:#e64441;}/*!sc*/
.dXXcln .token.selector,.dXXcln .token.attr-name,.dXXcln .token.string,.dXXcln .token.char,.dXXcln .token.builtin,.dXXcln .token.inserted{color:#a0fbaa;}/*!sc*/
.dXXcln .token.selector+a,.dXXcln .token.attr-name+a,.dXXcln .token.string+a,.dXXcln .token.char+a,.dXXcln .token.builtin+a,.dXXcln .token.inserted+a,.dXXcln .token.selector+a:visited,.dXXcln .token.attr-name+a:visited,.dXXcln .token.string+a:visited,.dXXcln .token.char+a:visited,.dXXcln .token.builtin+a:visited,.dXXcln .token.inserted+a:visited{color:#4ed2ba;text-decoration:underline;}/*!sc*/
.dXXcln .token.property.string{color:white;}/*!sc*/
.dXXcln .token.operator,.dXXcln .token.entity,.dXXcln .token.url,.dXXcln .token.variable{color:hsl(40, 90%, 60%);}/*!sc*/
.dXXcln .token.atrule,.dXXcln .token.attr-value,.dXXcln .token.keyword{color:hsl(350, 40%, 70%);}/*!sc*/
.dXXcln .token.regex,.dXXcln .token.important{color:#e90;}/*!sc*/
.dXXcln .token.important,.dXXcln .token.bold{font-weight:bold;}/*!sc*/
.dXXcln .token.italic{font-style:italic;}/*!sc*/
.dXXcln .token.entity{cursor:help;}/*!sc*/
.dXXcln .token.deleted{color:red;}/*!sc*/
data-styled.g32[id="sc-iKGpAq"]{content:"dXXcln,"}/*!sc*/
.btblAa{opacity:0.7;transition:opacity 0.3s ease;text-align:right;}/*!sc*/
.btblAa:focus-within{opacity:1;}/*!sc*/
.btblAa >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*/
.btblAa >button :hover,.btblAa >button :focus{background:rgba(255, 255, 255, 0.1);}/*!sc*/
data-styled.g33[id="sc-gjTGSz"]{content:"btblAa,"}/*!sc*/
.bNwKoT{position:relative;}/*!sc*/
data-styled.g37[id="sc-kMrHXi"]{content:"bNwKoT,"}/*!sc*/
.cnAPdU{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*/
.cnAPdU polyline{color:white;}/*!sc*/
data-styled.g38[id="sc-ilEZpr"]{content:"cnAPdU,"}/*!sc*/
.kKrNCs{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*/
.kKrNCs 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*/
.kKrNCs .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*/
.kKrNCs:hover,.kKrNCs:focus-within{border:1px solid #32329f;color:#32329f;box-shadow:0px 0px 0px 1px #32329f;}/*!sc*/
data-styled.g39[id="sc-jItqcA"]{content:"kKrNCs,"}/*!sc*/
.bzXJk{margin-left:10px;text-transform:none;font-size:0.929em;color:black;}/*!sc*/
data-styled.g41[id="sc-gXSCqT"]{content:"bzXJk,"}/*!sc*/
.dHaogz{font-family:Roboto,sans-serif;font-weight:400;line-height:1.5em;}/*!sc*/
.dHaogz p:last-child{margin-bottom:0;}/*!sc*/
.dHaogz h1{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#32329f;margin-top:0;}/*!sc*/
.dHaogz h2{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;}/*!sc*/
.dHaogz 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*/
.dHaogz 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*/
.dHaogz pre code{background-color:transparent;color:white;padding:0;}/*!sc*/
.dHaogz pre code:before,.dHaogz pre code:after{content:none;}/*!sc*/
.dHaogz blockquote{margin:0;margin-bottom:1em;padding:0 15px;color:#777;border-left:4px solid #ddd;}/*!sc*/
.dHaogz img{max-width:100%;box-sizing:content-box;}/*!sc*/
.dHaogz ul,.dHaogz ol{padding-left:2em;margin:0;margin-bottom:1em;}/*!sc*/
.dHaogz ul ul,.dHaogz ol ul,.dHaogz ul ol,.dHaogz ol ol{margin-bottom:0;margin-top:0;}/*!sc*/
.dHaogz 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*/
.dHaogz table tr{background-color:#fff;border-top:1px solid #ccc;}/*!sc*/
.dHaogz table tr:nth-child(2n){background-color:#fafafa;}/*!sc*/
.dHaogz table th,.dHaogz table td{padding:6px 13px;border:1px solid #ddd;}/*!sc*/
.dHaogz table th{text-align:left;font-weight:bold;}/*!sc*/
.dHaogz .share-link{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
.dHaogz .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*/
.dHaogz h1:hover>.share-link::before,.dHaogz h2:hover>.share-link::before,.dHaogz .share-link:hover::before{visibility:visible;}/*!sc*/
.dHaogz a{text-decoration:auto;color:#32329f;}/*!sc*/
.dHaogz a:visited{color:#32329f;}/*!sc*/
.dHaogz a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
.cFvDiF{font-family:Roboto,sans-serif;font-weight:400;line-height:1.5em;}/*!sc*/
.cFvDiF p:last-child{margin-bottom:0;}/*!sc*/
.cFvDiF p:first-child{margin-top:0;}/*!sc*/
.cFvDiF p:last-child{margin-bottom:0;}/*!sc*/
.cFvDiF h1{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#32329f;margin-top:0;}/*!sc*/
.cFvDiF h2{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;}/*!sc*/
.cFvDiF 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*/
.cFvDiF 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*/
.cFvDiF pre code{background-color:transparent;color:white;padding:0;}/*!sc*/
.cFvDiF pre code:before,.cFvDiF pre code:after{content:none;}/*!sc*/
.cFvDiF blockquote{margin:0;margin-bottom:1em;padding:0 15px;color:#777;border-left:4px solid #ddd;}/*!sc*/
.cFvDiF img{max-width:100%;box-sizing:content-box;}/*!sc*/
.cFvDiF ul,.cFvDiF ol{padding-left:2em;margin:0;margin-bottom:1em;}/*!sc*/
.cFvDiF ul ul,.cFvDiF ol ul,.cFvDiF ul ol,.cFvDiF ol ol{margin-bottom:0;margin-top:0;}/*!sc*/
.cFvDiF 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*/
.cFvDiF table tr{background-color:#fff;border-top:1px solid #ccc;}/*!sc*/
.cFvDiF table tr:nth-child(2n){background-color:#fafafa;}/*!sc*/
.cFvDiF table th,.cFvDiF table td{padding:6px 13px;border:1px solid #ddd;}/*!sc*/
.cFvDiF table th{text-align:left;font-weight:bold;}/*!sc*/
.cFvDiF .share-link{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
.cFvDiF .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*/
.cFvDiF h1:hover>.share-link::before,.cFvDiF h2:hover>.share-link::before,.cFvDiF .share-link:hover::before{visibility:visible;}/*!sc*/
.cFvDiF a{text-decoration:auto;color:#32329f;}/*!sc*/
.cFvDiF a:visited{color:#32329f;}/*!sc*/
.cFvDiF a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
.fTBBlJ{font-family:Roboto,sans-serif;font-weight:400;line-height:1.5em;}/*!sc*/
.fTBBlJ p:last-child{margin-bottom:0;}/*!sc*/
.fTBBlJ p:first-child{margin-top:0;}/*!sc*/
.fTBBlJ p:last-child{margin-bottom:0;}/*!sc*/
.fTBBlJ p{display:inline-block;}/*!sc*/
.fTBBlJ h1{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.85714em;line-height:1.6em;color:#32329f;margin-top:0;}/*!sc*/
.fTBBlJ h2{font-family:Montserrat,sans-serif;font-weight:400;font-size:1.57143em;line-height:1.6em;color:#333333;}/*!sc*/
.fTBBlJ 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*/
.fTBBlJ 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*/
.fTBBlJ pre code{background-color:transparent;color:white;padding:0;}/*!sc*/
.fTBBlJ pre code:before,.fTBBlJ pre code:after{content:none;}/*!sc*/
.fTBBlJ blockquote{margin:0;margin-bottom:1em;padding:0 15px;color:#777;border-left:4px solid #ddd;}/*!sc*/
.fTBBlJ img{max-width:100%;box-sizing:content-box;}/*!sc*/
.fTBBlJ ul,.fTBBlJ ol{padding-left:2em;margin:0;margin-bottom:1em;}/*!sc*/
.fTBBlJ ul ul,.fTBBlJ ol ul,.fTBBlJ ul ol,.fTBBlJ ol ol{margin-bottom:0;margin-top:0;}/*!sc*/
.fTBBlJ 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*/
.fTBBlJ table tr{background-color:#fff;border-top:1px solid #ccc;}/*!sc*/
.fTBBlJ table tr:nth-child(2n){background-color:#fafafa;}/*!sc*/
.fTBBlJ table th,.fTBBlJ table td{padding:6px 13px;border:1px solid #ddd;}/*!sc*/
.fTBBlJ table th{text-align:left;font-weight:bold;}/*!sc*/
.fTBBlJ .share-link{cursor:pointer;margin-left:-20px;padding:0;line-height:1;width:20px;display:inline-block;outline:0;}/*!sc*/
.fTBBlJ .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*/
.fTBBlJ h1:hover>.share-link::before,.fTBBlJ h2:hover>.share-link::before,.fTBBlJ .share-link:hover::before{visibility:visible;}/*!sc*/
.fTBBlJ a{text-decoration:auto;color:#32329f;}/*!sc*/
.fTBBlJ a:visited{color:#32329f;}/*!sc*/
.fTBBlJ a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
data-styled.g42[id="sc-cCYyou"]{content:"dHaogz,cFvDiF,fTBBlJ,"}/*!sc*/
.dkmSdy{display:inline;}/*!sc*/
data-styled.g43[id="sc-cjERFZ"]{content:"dkmSdy,"}/*!sc*/
.fJsoyS{position:relative;}/*!sc*/
data-styled.g44[id="sc-jegxcw"]{content:"fJsoyS,"}/*!sc*/
.iLjyyA:hover>.sc-gjTGSz{opacity:1;}/*!sc*/
data-styled.g49[id="sc-cRZddz"]{content:"iLjyyA,"}/*!sc*/
.jKIGwd{font-family:Courier,monospace;font-size:13px;white-space:pre;contain:content;overflow-x:auto;}/*!sc*/
.jKIGwd .redoc-json code>.collapser{display:none;pointer-events:none;}/*!sc*/
.jKIGwd .callback-function{color:gray;}/*!sc*/
.jKIGwd .collapser:after{content:'-';cursor:pointer;}/*!sc*/
.jKIGwd .collapsed>.collapser:after{content:'+';cursor:pointer;}/*!sc*/
.jKIGwd .ellipsis:after{content:' … ';}/*!sc*/
.jKIGwd .collapsible{margin-left:2em;}/*!sc*/
.jKIGwd .hoverable{padding-top:1px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-radius:2px;}/*!sc*/
.jKIGwd .hovered{background-color:rgba(235, 238, 249, 1);}/*!sc*/
.jKIGwd .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*/
.jKIGwd .collapser:focus{outline-color:#fff;outline-style:dotted;outline-width:1px;}/*!sc*/
.jKIGwd ul{list-style-type:none;padding:0px;margin:0px 0px 0px 26px;}/*!sc*/
.jKIGwd li{position:relative;display:block;}/*!sc*/
.jKIGwd .hoverable{display:inline-block;}/*!sc*/
.jKIGwd .selected{outline-style:solid;outline-width:1px;outline-style:dotted;}/*!sc*/
.jKIGwd .collapsed>.collapsible{display:none;}/*!sc*/
.jKIGwd .ellipsis{display:none;}/*!sc*/
.jKIGwd .collapsed>.ellipsis{display:inherit;}/*!sc*/
data-styled.g50[id="sc-jMAIzW"]{content:"jKIGwd,"}/*!sc*/
.eMpCUl{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.g51[id="sc-dQelHO"]{content:"eMpCUl,"}/*!sc*/
.ccmcKc{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.g52[id="sc-bCDidX"]{content:"ccmcKc,"}/*!sc*/
.gpxHhK{position:relative;}/*!sc*/
data-styled.g53[id="sc-cPlDXk"]{content:"gpxHhK,"}/*!sc*/
.dNwfFN{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*/
.dNwfFN label{color:#ffffff;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:1em;text-transform:none;border:none;}/*!sc*/
.dNwfFN:hover,.dNwfFN:focus-within{border:none;box-shadow:none;background-color:rgba(38,50,56,0.7);}/*!sc*/
data-styled.g54[id="sc-BKAtt"]{content:"dNwfFN,"}/*!sc*/
.ksuOBo{margin-top:15px;}/*!sc*/
data-styled.g56[id="sc-hVkBjf"]{content:"ksuOBo,"}/*!sc*/
.bXwTFl.deprecated span.property-name{text-decoration:line-through;color:#707070;}/*!sc*/
.bXwTFl button{background-color:transparent;border:0;outline:0;font-size:13px;font-family:Courier,monospace;cursor:pointer;padding:0;color:#333333;}/*!sc*/
.bXwTFl button:focus{font-weight:600;}/*!sc*/
.bXwTFl .sc-fbJfz{height:1.1em;width:1.1em;}/*!sc*/
.bXwTFl .sc-fbJfz polygon{fill:#666;}/*!sc*/
data-styled.g57[id="sc-jhSXcs"]{content:"bXwTFl,"}/*!sc*/
.bPAaet{vertical-align:middle;font-size:13px;line-height:20px;}/*!sc*/
data-styled.g58[id="sc-gUrTyB"]{content:"bPAaet,"}/*!sc*/
.UMvzF{color:rgba(102,102,102,0.9);}/*!sc*/
data-styled.g59[id="sc-kZGvTq"]{content:"UMvzF,"}/*!sc*/
.fEQrHJ{color:#666;}/*!sc*/
data-styled.g60[id="sc-iMfspz"]{content:"fEQrHJ,"}/*!sc*/
.kEFcTG{color:#666;word-break:break-word;}/*!sc*/
data-styled.g61[id="sc-jfSnVt"]{content:"kEFcTG,"}/*!sc*/
.boAHLn{color:#d41f1c;font-size:0.9em;font-weight:normal;margin-left:20px;line-height:1;}/*!sc*/
data-styled.g62[id="sc-eKYjSU"]{content:"boAHLn,"}/*!sc*/
.eShQxX{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-ldFCYc+.sc-ldFCYc{margin-left:0;}/*!sc*/
data-styled.g66[id="sc-ldFCYc"]{content:"eShQxX,"}/*!sc*/
.iWTprB{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-cmEaii+.sc-cmEaii{margin-left:0;}/*!sc*/
data-styled.g68[id="sc-cmEaii"]{content:"iWTprB,"}/*!sc*/
.cLOXvd:after{content:' and ';font-weight:normal;}/*!sc*/
.cLOXvd:last-child:after{content:none;}/*!sc*/
.cLOXvd a{text-decoration:auto;color:#32329f;}/*!sc*/
.cLOXvd a:visited{color:#32329f;}/*!sc*/
.cLOXvd a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
data-styled.g81[id="sc-hNeXkj"]{content:"cLOXvd,"}/*!sc*/
.ddMcul{white-space:nowrap;}/*!sc*/
.ddMcul:after{content:' or ';white-space:pre;}/*!sc*/
.ddMcul:last-child:after,.ddMcul:only-child:after{content:none;}/*!sc*/
.ddMcul a{text-decoration:auto;color:#32329f;}/*!sc*/
.ddMcul a:visited{color:#32329f;}/*!sc*/
.ddMcul a:hover{color:#6868cf;text-decoration:auto;}/*!sc*/
data-styled.g82[id="sc-dskThK"]{content:"ddMcul,"}/*!sc*/
.kuPPCO{flex:1 1 auto;cursor:pointer;}/*!sc*/
data-styled.g83[id="sc-cYRmzp"]{content:"kuPPCO,"}/*!sc*/
.gZngKQ{width:75%;text-overflow:ellipsis;border-radius:4px;overflow:hidden;}/*!sc*/
@media screen and (max-width: 50rem){.gZngKQ{margin-top:10px;}}/*!sc*/
data-styled.g84[id="sc-jTsRVM"]{content:"gZngKQ,"}/*!sc*/
.qtYpT{display:inline-block;margin:0;}/*!sc*/
data-styled.g85[id="sc-jOQpHb"]{content:"qtYpT,"}/*!sc*/
.pzAgN{width:100%;display:flex;margin:1em 0;flex-direction:row;}/*!sc*/
@media screen and (max-width: 50rem){.pzAgN{flex-direction:column;}}/*!sc*/
data-styled.g86[id="sc-ftWlEC"]{content:"pzAgN,"}/*!sc*/
.bSStQp{margin-top:0;margin-bottom:0.5em;}/*!sc*/
data-styled.g92[id="sc-crPCXn"]{content:"bSStQp,"}/*!sc*/
.dfuuzt::before{content:'|';display:inline-block;opacity:0.5;width:15px;text-align:center;}/*!sc*/
.dfuuzt:last-child::after{display:none;}/*!sc*/
data-styled.g94[id="sc-bqWVmJ"]{content:"dfuuzt,"}/*!sc*/
.gUaytm{overflow:hidden;}/*!sc*/
data-styled.g95[id="sc-gHbYXW"]{content:"gUaytm,"}/*!sc*/
.cNLDQk{display:flex;flex-wrap:wrap;margin-left:-15px;}/*!sc*/
data-styled.g96[id="sc-etAVuf"]{content:"cNLDQk,"}/*!sc*/
.FLoTo{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*/
.FLoTo.get{background-color:#2F8132;}/*!sc*/
.FLoTo.post{background-color:#186FAF;}/*!sc*/
.FLoTo.put{background-color:#95507c;}/*!sc*/
.FLoTo.options{background-color:#947014;}/*!sc*/
.FLoTo.patch{background-color:#bf581d;}/*!sc*/
.FLoTo.delete{background-color:#cc3333;}/*!sc*/
.FLoTo.basic{background-color:#707070;}/*!sc*/
.FLoTo.link{background-color:#07818F;}/*!sc*/
.FLoTo.head{background-color:#A23DAD;}/*!sc*/
.FLoTo.hook{background-color:#32329f;}/*!sc*/
.FLoTo.schema{background-color:#707070;}/*!sc*/
data-styled.g100[id="sc-YtoFD"]{content:"FLoTo,"}/*!sc*/
.fpIsZT{margin:0;padding:0;}/*!sc*/
.fpIsZT:first-child{padding-bottom:32px;}/*!sc*/
.sc-imaUOy .sc-imaUOy{font-size:0.929em;}/*!sc*/
.cjNZVC{margin:0;padding:0;display:none;}/*!sc*/
.cjNZVC:first-child{padding-bottom:32px;}/*!sc*/
.sc-imaUOy .sc-imaUOy{font-size:0.929em;}/*!sc*/
data-styled.g101[id="sc-imaUOy"]{content:"fpIsZT,cjNZVC,"}/*!sc*/
.cVgssJ{list-style:none inside none;overflow:hidden;text-overflow:ellipsis;padding:0;}/*!sc*/
data-styled.g102[id="sc-vjKnv"]{content:"cVgssJ,"}/*!sc*/
.YJdNS{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*/
.YJdNS:hover{color:#32329f;background-color:#e1e1e1;}/*!sc*/
.YJdNS .sc-fbJfz{height:1.5em;width:1.5em;}/*!sc*/
.YJdNS .sc-fbJfz polygon{fill:#333333;}/*!sc*/
.fUjfPA{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*/
.fUjfPA:hover{color:#32329f;background-color:#ededed;}/*!sc*/
.fUjfPA .sc-fbJfz{height:1.5em;width:1.5em;}/*!sc*/
.fUjfPA .sc-fbJfz polygon{fill:#333333;}/*!sc*/
data-styled.g103[id="sc-bjMMwc"]{content:"YJdNS,fUjfPA,"}/*!sc*/
.jZTjzp{display:inline-block;vertical-align:middle;width:calc(100% - 38px);overflow:hidden;text-overflow:ellipsis;}/*!sc*/
data-styled.g104[id="sc-eIrltV"]{content:"jZTjzp,"}/*!sc*/
.jKUIUi{font-size:0.8em;margin-top:10px;text-align:center;position:fixed;width:260px;bottom:0;background:#fafafa;}/*!sc*/
.jKUIUi a,.jKUIUi a:visited,.jKUIUi 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*/
.jKUIUi img{width:15px;margin-right:5px;}/*!sc*/
@media screen and (max-width: 50rem){.jKUIUi{width:100%;}}/*!sc*/
data-styled.g105[id="sc-hAYhfO"]{content:"jKUIUi,"}/*!sc*/
.dHdMVa{cursor:pointer;position:relative;margin-bottom:5px;}/*!sc*/
data-styled.g111[id="sc-fYzRkH"]{content:"dHdMVa,"}/*!sc*/
.dkiPkt{font-family:Courier,monospace;margin-left:10px;flex:1;overflow-x:hidden;text-overflow:ellipsis;}/*!sc*/
data-styled.g112[id="sc-GJyyy"]{content:"dkiPkt,"}/*!sc*/
.iWrBta{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*/
.iWrBta ..sc-GJyyy{color:#ffffff;}/*!sc*/
.iWrBta: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.g113[id="sc-jYvNnh"]{content:"iWrBta,"}/*!sc*/
.ejslkd{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*/
.kCsPwr{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.g114[id="sc-eGFuAY"]{content:"ejslkd,kCsPwr,"}/*!sc*/
.dplsyJ{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.g115[id="sc-fnxdBX"]{content:"dplsyJ,"}/*!sc*/
.cNCbuV{padding:10px;}/*!sc*/
data-styled.g116[id="sc-llcuoK"]{content:"cNCbuV,"}/*!sc*/
.eobUac{padding:5px;border:1px solid #ccc;background:#fff;word-break:break-all;color:#32329f;}/*!sc*/
.eobUac >span{color:#333333;}/*!sc*/
data-styled.g117[id="sc-jnsZEx"]{content:"eobUac,"}/*!sc*/
.iuCmqI{text-transform:lowercase;margin-left:0;line-height:1.5em;}/*!sc*/
data-styled.g118[id="sc-dVCGSo"]{content:"iuCmqI,"}/*!sc*/
.brztng{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*/
.brztng:focus{outline:auto #1d8127;}/*!sc*/
.fvWYOy{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*/
.fvWYOy:focus{outline:auto #d41f1c;}/*!sc*/
.kwTqVQ{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*/
.kwTqVQ:focus{outline:auto #d41f1c;}/*!sc*/
.kwTqVQ::before{content:"—";font-weight:bold;width:1.5em;text-align:center;display:inline-block;vertical-align:top;}/*!sc*/
.kwTqVQ:focus{outline:0;}/*!sc*/
.gSNqow{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*/
.gSNqow:focus{outline:auto #87ceeb;}/*!sc*/
.gSNqow::before{content:"—";font-weight:bold;width:1.5em;text-align:center;display:inline-block;vertical-align:top;}/*!sc*/
.gSNqow:focus{outline:0;}/*!sc*/
data-styled.g120[id="sc-caslwi"]{content:"brztng,fvWYOy,kwTqVQ,gSNqow,"}/*!sc*/
.jJkGwY{vertical-align:top;}/*!sc*/
data-styled.g123[id="sc-fYaxgW"]{content:"jJkGwY,"}/*!sc*/
.hsJdXF{font-size:1.3em;padding:0.2em 0;margin:3em 0 1.1em;color:#333333;font-weight:normal;}/*!sc*/
data-styled.g124[id="sc-fJjTez"]{content:"hsJdXF,"}/*!sc*/
.dUdgLx{margin-bottom:30px;}/*!sc*/
data-styled.g129[id="sc-iERabE"]{content:"dUdgLx,"}/*!sc*/
.dKxKge{user-select:none;width:20px;height:20px;align-self:center;display:flex;flex-direction:column;color:#32329f;}/*!sc*/
data-styled.g130[id="sc-iqavZh"]{content:"dKxKge,"}/*!sc*/
.kBSkUl{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){.kBSkUl{position:fixed;z-index:20;width:100%;background:#fafafa;display:none;}}/*!sc*/
@media print{.kBSkUl{display:none;}}/*!sc*/
data-styled.g131[id="sc-eXHjA-d"]{content:"kBSkUl,"}/*!sc*/
.laYfRb{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){.laYfRb{display:flex;}}/*!sc*/
.laYfRb svg{color:#0065FB;}/*!sc*/
@media print{.laYfRb{display:none;}}/*!sc*/
data-styled.g132[id="sc-kVmAmQ"]{content:"laYfRb,"}/*!sc*/
.gRgPoG{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*/
.gRgPoG *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(255, 255, 255, 0);}/*!sc*/
data-styled.g133[id="sc-dxnOzf"]{content:"gRgPoG,"}/*!sc*/
.gfWNtA{z-index:1;position:relative;overflow:hidden;width:calc(100% - 260px);contain:layout;}/*!sc*/
@media print,screen and (max-width: 50rem){.gfWNtA{width:100%;}}/*!sc*/
data-styled.g134[id="sc-juTflS"]{content:"gfWNtA,"}/*!sc*/
.jYOHCb{background:#263238;position:absolute;top:0;bottom:0;right:0;width:calc((100% - 260px) * 0.4);}/*!sc*/
@media print,screen and (max-width: 75rem){.jYOHCb{display:none;}}/*!sc*/
data-styled.g135[id="sc-emEvRt"]{content:"jYOHCb,"}/*!sc*/
.ijJYzO{padding:5px 0;}/*!sc*/
data-styled.g136[id="sc-kkjMEg"]{content:"ijJYzO,"}/*!sc*/
.kOlXdP{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.g137[id="sc-cMlaQv"]{content:"kOlXdP,"}/*!sc*/
.gtHWGb{position:absolute;left:20px;height:1.8em;width:0.9em;}/*!sc*/
.gtHWGb path{fill:#333333;}/*!sc*/
data-styled.g138[id="sc-iJQrDi"]{content:"gtHWGb,"}/*!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-dxnOzf gRgPoG redoc-wrap"><div class="sc-eXHjA-d kBSkUl menu-content" style="top:0px;height:calc(100vh - 0px)"><div role="search" class="sc-kkjMEg ijJYzO"><svg class="sc-iJQrDi gtHWGb 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-cMlaQv kOlXdP search-input" value=""/></div><div class="sc-kMrHXi bNwKoT scrollbar-container undefined"><ul role="menu" class="sc-imaUOy fpIsZT"><li tabindex="0" depth="1" data-item-id="section/Overview" role="menuitem" aria-label="Overview" aria-expanded="false" class="sc-vjKnv cVgssJ"><label class="sc-bjMMwc YJdNS -depth1"><span width="calc(100% - 38px)" title="Overview" class="sc-eIrltV jZTjzp">Overview</span></label></li><li tabindex="0" depth="1" data-item-id="section/Service-Types" role="menuitem" aria-label="Service Types" aria-expanded="false" class="sc-vjKnv cVgssJ"><label class="sc-bjMMwc YJdNS -depth1"><span width="calc(100% - 38px)" title="Service Types" class="sc-eIrltV jZTjzp">Service Types</span></label></li><li tabindex="0" depth="1" data-item-id="section/Authentication" role="menuitem" aria-label="Authentication" aria-expanded="false" class="sc-vjKnv cVgssJ"><label class="sc-bjMMwc YJdNS -depth1"><span width="calc(100% - 38px)" title="Authentication" class="sc-eIrltV jZTjzp">Authentication</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-vjKnv cVgssJ"><label class="sc-bjMMwc YJdNS -depth1"><span width="calc(100% - 38px)" title="Field Naming" class="sc-eIrltV jZTjzp">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-vjKnv cVgssJ"><label class="sc-bjMMwc YJdNS -depth1"><span width="calc(100% - 38px)" title="Error Responses" class="sc-eIrltV jZTjzp">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-vjKnv cVgssJ"><label class="sc-bjMMwc YJdNS -depth1"><span width="calc(100% - 38px)" title="Config" class="sc-eIrltV jZTjzp">Config</span><svg class="sc-fbJfz cNCXIL" 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-imaUOy cjNZVC"><li tabindex="0" depth="2" data-item-id="tag/Config/operation/configService" role="menuitem" aria-label="Configuration service" aria-expanded="false" class="sc-vjKnv cVgssJ"><label class="sc-bjMMwc fUjfPA -depth2"><span type="post" class="sc-YtoFD FLoTo operation-type post">post</span><span tabindex="0" width="calc(100% - 38px)" class="sc-eIrltV jZTjzp">Configuration service</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-vjKnv cVgssJ"><label class="sc-bjMMwc YJdNS -depth1"><span width="calc(100% - 38px)" title="Flow" class="sc-eIrltV jZTjzp">Flow</span><svg class="sc-fbJfz cNCXIL" 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-imaUOy cjNZVC"><li tabindex="0" depth="2" data-item-id="tag/Flow/operation/flowService" role="menuitem" aria-label="Flow lifecycle and blueprint management" aria-expanded="false" class="sc-vjKnv cVgssJ"><label class="sc-bjMMwc fUjfPA -depth2"><span type="post"
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-juTflS gfWNtA api-content"><div class="sc-eDDNvO eTiIZG"><div class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG api-info"><h1 class="sc-fsQipe sc-crPCXn ePkAIL bSStQp">TrustGraph API Gateway<!-- --> <span>(<!-- -->2.1<!-- -->)</span></h1><p>Download OpenAPI specification<!-- -->:</p><div class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"><div class="sc-gHbYXW gUaytm"><div class="sc-etAVuf cNLDQk"> <span class="sc-bqWVmJ dfuuzt">URL: <a href="https://trustgraph.ai">https://trustgraph.ai</a></span> <span class="sc-bqWVmJ dfuuzt">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-iKGpAq sc-cCYyou dXXcln dHaogz"></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-iKGpAq sc-cCYyou dXXcln dHaogz"><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-eDDNvO eTiIZG"><div class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-jsMahD AyivY"><a class="sc-csCMJq jSIqAu" href="#section/Overview" aria-label="section/Overview"></a>Overview</h2></div></div><div class="sc-hLseeT eiTXyS"><div class="sc-iKGpAq sc-cCYyou dXXcln dHaogz 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;: Configuration, flow management, knowledge storage, library management&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flow-Hosted 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>: Configuration, flow management, knowledge storage, library management</li>
<li><strong>Flow-Hosted 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/Service-Types" data-section-id="section/Service-Types" class="sc-eDDNvO eTiIZG"><div class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-jsMahD AyivY"><a class="sc-csCMJq jSIqAu" href="#section/Service-Types" aria-label="section/Service-Types"></a>Service Types</h2></div></div><div class="sc-hLseeT eiTXyS"><div class="sc-iKGpAq sc-cCYyou dXXcln dHaogz redoc-markdown " html="&lt;h3 id=&quot;global-services&quot;&gt;Global Services&lt;/h3&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-hosted-services&quot;&gt;Flow-Hosted Services&lt;/h3&gt;
&lt;p&gt;Require running flow instance, 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, 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>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-hosted-services">Flow-Hosted Services</h3>
<p>Require running flow instance, 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, 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/Authentication" data-section-id="section/Authentication" class="sc-eDDNvO eTiIZG"><div class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-jsMahD AyivY"><a class="sc-csCMJq jSIqAu" href="#section/Authentication" aria-label="section/Authentication"></a>Authentication</h2></div></div><div class="sc-hLseeT eiTXyS"><div class="sc-iKGpAq sc-cCYyou dXXcln dHaogz redoc-markdown " html="&lt;p&gt;Bearer token authentication when &lt;code&gt;GATEWAY_SECRET&lt;/code&gt; environment variable is set.
Include token in Authorization header:&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;If &lt;code&gt;GATEWAY_SECRET&lt;/code&gt; is not set, API runs without authentication (development mode).&lt;/p&gt;
"><p>Bearer token authentication when <code>GATEWAY_SECRET</code> environment variable is set.
Include token in Authorization header:</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>If <code>GATEWAY_SECRET</code> is not set, API runs without authentication (development mode).</p>
</div></div></div><div id="section/Field-Naming" data-section-id="section/Field-Naming" class="sc-eDDNvO eTiIZG"><div class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-jsMahD AyivY"><a class="sc-csCMJq jSIqAu" href="#section/Field-Naming" aria-label="section/Field-Naming"></a>Field Naming</h2></div></div><div class="sc-hLseeT eiTXyS"><div class="sc-iKGpAq sc-cCYyou dXXcln dHaogz 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-eDDNvO eTiIZG"><div class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-jsMahD AyivY"><a class="sc-csCMJq jSIqAu" href="#section/Error-Responses" aria-label="section/Error-Responses"></a>Error Responses</h2></div></div><div class="sc-hLseeT eiTXyS"><div class="sc-iKGpAq sc-cCYyou dXXcln dHaogz 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-eDDNvO eTiIZG"><div class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Config" aria-label="tag/Config"></a>Config</h2></div></div><div class="sc-hLseeT eiTXyS"><div class="sc-iKGpAq sc-cCYyou dXXcln dHaogz redoc-markdown " html="&lt;p&gt;Configuration management (global service)&lt;/p&gt;
"><p>Configuration management (global service)</p>
</div></div></div><div id="tag/Config/operation/configService" data-section-id="tag/Config/operation/configService" class="sc-eDDNvO iUTsUN"><div data-section-id="operation/configService" id="operation/configService" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Config/operation/configService" aria-label="tag/Config/operation/configService"></a>Configuration service<!-- --> </h2><div class="sc-iERabE dUdgLx"><div html="&lt;p&gt;Manage TrustGraph configuration including flows, prompts, token costs, parameter types, and more.&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Manage TrustGraph configuration including flows, prompts, token costs, parameter types, and more.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="operation" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">operation</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;config&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;list&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;get&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;put&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&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-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">type</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">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-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="keys"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand keys"><span class="property-name">keys</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">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-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Keys to retrieve (for get operation) or delete (for delete operation)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="values"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand values"><span class="property-name">values</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">objects</span></div> <div><div html="&lt;p&gt;Values to set/update (for put operation)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Values to set/update (for put operation)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/config</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/config</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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><opt
"><p>Flow lifecycle and blueprint management (global service)</p>
</div></div></div><div id="tag/Flow/operation/flowService" data-section-id="tag/Flow/operation/flowService" class="sc-eDDNvO iUTsUN"><div data-section-id="operation/flowService" id="operation/flowService" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Flow/operation/flowService" aria-label="tag/Flow/operation/flowService"></a>Flow lifecycle and blueprint management<!-- --> </h2><div class="sc-iERabE dUdgLx"><div html="&lt;p&gt;Manage flow instances and blueprints.&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Manage flow instances and blueprints.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="operation" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">operation</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;start-flow&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;stop-flow&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;list-flows&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;get-flow&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;list-blueprints&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;get-blueprint&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;put-blueprint&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&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-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow-id</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">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-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">blueprint-name</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">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-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="blueprint-definition"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand blueprint-definition"><span class="property-name">blueprint-definition</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span></div> <div><div html="&lt;p&gt;Flow blueprint definition (required for put-blueprint)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow blueprint definition (required for put-blueprint)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="description" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">description</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Flow description (optional for start-flow)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow description (optional for start-flow)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="parameters"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand parameters"><span class="property-name">parameters</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">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-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selecte
"><p>Document library management (global service)</p>
</div></div></div><div id="tag/Librarian/operation/librarianService" data-section-id="tag/Librarian/operation/librarianService" class="sc-eDDNvO iUTsUN"><div data-section-id="operation/librarianService" id="operation/librarianService" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Librarian/operation/librarianService" aria-label="tag/Librarian/operation/librarianService"></a>Document library management<!-- --> </h2><div class="sc-iERabE dUdgLx"><div html="&lt;p&gt;Manage document library: add, remove, list documents, and control processing.&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Manage document library: add, remove, list documents, and control processing.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="operation" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">operation</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;add-document&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;remove-document&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;list-documents&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;start-processing&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;stop-processing&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&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;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-iKGpAq sc-cCYyou dXXcln cFvDiF"><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>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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Flow ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow ID</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="document-id" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">document-id</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Document identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Document identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="processing-id" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">processing-id</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Processing task identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Processing task identifier</p>
</div></div></div></td></tr><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="document-metadata"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand document-metadata"><span class="property-name">document-metadata</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span><span class="sc-gUrTyB sc-jfSnVt bPAaet kEFcTG"> (<!-- -->DocumentMetadata<!-- -->) </span></div> <div><div html="&lt;p&gt;Document metadata for library management&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Document metadata for library management</p>
</div></div></div></td></tr><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="processing-metadata"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand processing-metadata"><span class="property-name">processing-metadata</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span><span class="sc-gUrTyB sc-jfSnVt bPAaet kEFcTG"> (<!-- -->ProcessingMetadata<!-- -->) </span></div> <div><div html="&lt;p&gt;Processing metadata for library document processing&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Processing metadata for library document processing</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="content" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">content</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Document content (for add-document with inline content)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Document content (for add-document with inline content)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="criteria"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand criteria"><span class="property-name">criteria</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">objects</span></div> <div><div html="&lt;p&gt;Search criteria for filtering documents&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Search criteria for filtering documents</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/librarian</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/librarian</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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 coll
"><p>Knowledge graph core management (global service)</p>
</div></div></div><div id="tag/Knowledge/operation/knowledgeService" data-section-id="tag/Knowledge/operation/knowledgeService" class="sc-eDDNvO iUTsUN"><div data-section-id="operation/knowledgeService" id="operation/knowledgeService" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Knowledge/operation/knowledgeService" aria-label="tag/Knowledge/operation/knowledgeService"></a>Knowledge graph core management<!-- --> </h2><div class="sc-iERabE dUdgLx"><div html="&lt;p&gt;Manage knowledge graph cores - persistent storage of triples and embeddings.&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, user, and collection for organization.&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 for a user. 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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Manage knowledge graph cores - persistent storage of triples and embeddings.</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, user, and collection for organization.</p>
<h2 id="operations">Operations</h2>
<h3 id="list-kg-cores">list-kg-cores</h3>
<p>List all knowledge cores for a user. 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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="operation" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">operation</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;list-kg-cores&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;get-kg-core&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;put-kg-core&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;delete-kg-core&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;load-kg-core&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&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 for user&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-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Knowledge core operation:</p>
<ul>
<li><code>list-kg-cores</code>: List knowledge cores for user</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="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier (for list-kg-cores, put-kg-core, delete-kg-core)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier (for list-kg-cores, put-kg-core, delete-kg-core)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="id" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">id</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Knowledge core ID (for get, put, delete, load, unload)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Flow ID (for load-kg-core)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow ID (for load-kg-core)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection identifier (for load-kg-core)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection identifier (for load-kg-core)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="triples"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand triples"><span class="property-name">triples</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span></div> <div><div html="&lt;p&gt;Triples to store (for put-kg-core)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Triples to store (for put-kg-core)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="graph-embeddings"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand graph-embeddings"><span class="property-name">graph-embeddings</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span></div> <div><div html="&lt;p&gt;Graph embeddings to store (for put-kg-core)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Graph embeddings to store (for put-kg-core)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/knowledge</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/knowledge</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"user"</span>: <span class="token string">&quot;alice&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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" selecte
"><p>Collection metadata management (global service)</p>
</div></div></div><div id="tag/Collection/operation/collectionManagementService" data-section-id="tag/Collection/operation/collectionManagementService" class="sc-eDDNvO iUTsUN"><div data-section-id="operation/collectionManagementService" id="operation/collectionManagementService" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Collection/operation/collectionManagementService" aria-label="tag/Collection/operation/collectionManagementService"></a>Collection metadata management<!-- --> </h2><div class="sc-iERabE dUdgLx"><div html="&lt;p&gt;Manage collection metadata for organizing documents and knowledge.&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;User 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;user&lt;/strong&gt;: Owner identifier&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;collection&lt;/strong&gt;: Unique collection ID&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 for a user. 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 user and collection ID. This removes the metadata but
typically does not delete the associated data (documents, knowledge cores).&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Manage collection metadata for organizing documents and knowledge.</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>User data</li>
</ul>
<p>Each collection has:</p>
<ul>
<li><strong>user</strong>: Owner identifier</li>
<li><strong>collection</strong>: Unique collection ID</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 for a user. 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 user and collection ID. This removes the metadata but
typically does not delete the associated data (documents, knowledge cores).</p>
</div></div><div class="sc-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="operation" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">operation</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;list-collections&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;update-collection&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&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 for user&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-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection operation:</p>
<ul>
<li><code>list-collections</code>: List collections for user</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="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Collection identifier (for update, delete)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection identifier (for update, delete)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="timestamp" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">timestamp</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ"> <!-- -->&lt;<!-- -->date-time<!-- -->&gt;<!-- --> </span></div> <div><div html="&lt;p&gt;ISO timestamp&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>ISO timestamp</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="name" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">name</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Human-readable collection name (for update)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Human-readable collection name (for update)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="description" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">description</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Collection description (for update)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection description (for update)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="tags" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">tags</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">strings</span></div> <div><div html="&lt;p&gt;Collection tags for organization (for update)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection tags for organization (for update)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="tag-filter" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">tag-filter</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">strings</span></div> <div><div html="&lt;p&gt;Filter collections by tags (for list)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Filter collections by tags (for list)</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="limit" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">limit</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">0</span></div> <div><div html="&lt;p&gt;Maximum number of results (for list)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum number of results (for list)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/collection-management</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/collection-management</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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 for user" selected="">List all collections for user</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 for user</label></div></div><div><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"user"</span>: <span class="token string">&quot;alice&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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>
"><p>Services hosted within flow instances</p>
</div></div></div><div id="tag/Flow-Services/operation/agentService" data-section-id="tag/Flow-Services/operation/agentService" class="sc-eDDNvO iUTsUN"><div data-section-id="operation/agentService" id="operation/agentService" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Flow-Services/operation/agentService" aria-label="tag/Flow-Services/operation/agentService"></a>Agent service - conversational AI with reasoning<!-- --> </h2><div class="sc-iERabE dUdgLx"><div html="&lt;p&gt;AI agent that can understand questions, reason about them, and take actions.&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;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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>AI agent that can understand questions, reason about them, and take actions.</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>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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="question" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">question</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;User question or prompt for the agent&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User question or prompt for the agent</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="state" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">state</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Agent state for continuation (optional, for multi-turn)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Agent state for continuation (optional, for multi-turn)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="group" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">group</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">strings</span></div> <div><div html="&lt;p&gt;Group identifiers for collaborative agents (optional)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Group identifiers for collaborative agents (optional)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="history"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand history"><span class="property-name">history</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">objects</span></div> <div><div html="&lt;p&gt;Conversation history (optional, list of previous agent steps)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Conversation history (optional, list of previous agent steps)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier for multi-tenancy&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier for multi-tenancy</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="streaming" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">streaming</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">boolean</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/agent</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/agent</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"user"</span>: <span class="token string">&quot;alice&quot;</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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="Legacy non-streaming response">Legacy non-streaming response</option></select><label>
&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 messages with &lt;code&gt;response&lt;/code&gt; content&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 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;li&gt;&lt;strong&gt;user&lt;/strong&gt;: Multi-tenant isolation&lt;/li&gt;
&lt;/ul&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Retrieval-Augmented Generation over document embeddings.</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 messages with <code>response</code> content</li>
<li>Final message with <code>end-of-stream: true</code></li>
</ul>
<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>
<li><strong>user</strong>: Multi-tenant isolation</li>
</ul>
</div></div><div class="sc-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="query" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">query</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;User query or question&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User query or question</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier for multi-tenancy&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier for multi-tenancy</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search within&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection to search within</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="doc-limit" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">doc-limit</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 100 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">20</span></div> <div><div html="&lt;p&gt;Maximum number of documents to retrieve&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum number of documents to retrieve</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="streaming" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">streaming</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">boolean</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/document-rag</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/document-rag</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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">"user"</span>: <span class="token string">&quot;alice&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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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
&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 messages with &lt;code&gt;response&lt;/code&gt; content&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 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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Retrieval-Augmented Generation over knowledge graph.</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 messages with <code>response</code> content</li>
<li>Final message with <code>end-of-stream: true</code></li>
</ul>
<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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="query" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">query</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;User query or question&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User query or question</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier for multi-tenancy&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier for multi-tenancy</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search within&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection to search within</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="entity-limit" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">entity-limit</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 200 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">50</span></div> <div><div html="&lt;p&gt;Maximum number of entities to retrieve&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum number of entities to retrieve</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="triple-limit" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">triple-limit</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 100 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">30</span></div> <div><div html="&lt;p&gt;Maximum number of triples to retrieve per entity&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">max-subgraph-size</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 10 .. 5000 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">1000</span></div> <div><div html="&lt;p&gt;Maximum total subgraph size (triples)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum total subgraph size (triples)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="max-path-length" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">max-path-length</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 5 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">2</span></div> <div><div html="&lt;p&gt;Maximum path length for graph traversal&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum path length for graph traversal</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="streaming" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">streaming</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">boolean</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/graph-rag</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/graph-rag</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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">"user"</span>: <span class="token string">&quot;alice&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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Direct text completion using LLM without retrieval augmentation.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="system" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">system</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;System prompt that sets behavior and context for the LLM&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">prompt</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;User prompt or question&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User prompt or question</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="streaming" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">streaming</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">boolean</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/text-completion</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/text-completion</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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">Streamin
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Execute stored prompt templates with variable substitution.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="id" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">id</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Prompt template ID (stored in config)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Prompt template ID (stored in config)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="terms"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand terms"><span class="property-name">terms</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span></div> <div><div html="&lt;p&gt;Template variables as key-value pairs (values are JSON strings)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Template variables as key-value pairs (values are JSON strings)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="variables"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand variables"><span class="property-name">variables</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span></div> <div><div html="&lt;p&gt;Alternative to terms - variables as native JSON values (auto-converted)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">streaming</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">boolean</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Enable streaming response delivery</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/prompt</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/prompt</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div cla
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Convert text to embedding vectors for semantic similarity search.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="text" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">text</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Text to convert to embedding vector&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Text to convert to embedding vector</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/embeddings</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/embeddings</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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="hover
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Execute MCP (Model Context Protocol) tools for agent capabilities.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="name" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">name</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Tool name to execute&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Tool name to execute</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="parameters"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand parameters"><span class="property-name">parameters</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span></div> <div><div html="&lt;p&gt;Tool parameters (JSON object, auto-converted to string internally)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Tool parameters (JSON object, auto-converted to string internally)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/mcp-tool</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/mcp-tool</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Query knowledge graph using subject-predicate-object patterns.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="s"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand s"><span class="property-name">s</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span><span class="sc-gUrTyB sc-jfSnVt bPAaet kEFcTG"> (<!-- -->RdfValue<!-- -->) </span></div> <div><div html="&lt;p&gt;Subject filter (optional)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Subject filter (optional)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="p"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand p"><span class="property-name">p</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span><span class="sc-gUrTyB sc-jfSnVt bPAaet kEFcTG"> (<!-- -->RdfValue<!-- -->) </span></div> <div><div html="&lt;p&gt;Predicate filter (optional)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Predicate filter (optional)</p>
</div></div></div></td></tr><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="o"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand o"><span class="property-name">o</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span><span class="sc-gUrTyB sc-jfSnVt bPAaet kEFcTG"> (<!-- -->RdfValue<!-- -->) </span></div> <div><div html="&lt;p&gt;Object filter (optional)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Object filter (optional)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="limit" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">limit</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 100000 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">10000</span></div> <div><div html="&lt;p&gt;Maximum number of triples to return&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum number of triples to return</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to query&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection to query</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="g" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">g</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">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-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">streaming</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">boolean</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">false</span></div> <div><div html="&lt;p&gt;Enable streaming response delivery&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Enable streaming response delivery</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="batch-size" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">batch-size</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 1000 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">20</span></div> <div><div html="&lt;p&gt;Number of triples per streaming batch&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Number of triples per streaming batch</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/triples</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/triples</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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">"user"</span>: <span class="token string">&quot;alice&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><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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Query structured data using GraphQL for row-oriented data access.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="query" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">query</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;GraphQL query string&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>GraphQL query string</p>
</div></div></div></td></tr><tr class=""><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="variables"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand variables"><span class="property-name">variables</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span></div> <div><div html="&lt;p&gt;GraphQL query variables&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>GraphQL query variables</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="operation-name" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">operation-name</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Operation name (for multi-operation documents)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Operation name (for multi-operation documents)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to query&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection to query</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/rows</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/rows</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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">"user"</span>: <span class="token string">&quot;alice&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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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 err
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Convert natural language questions to structured GraphQL queries.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="question" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">question</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Natural language question&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Natural language question</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="max-results" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">max-results</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 10000 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">100</span></div> <div><div html="&lt;p&gt;Maximum results to return when query is executed&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum results to return when query is executed</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/nlp-query</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/nlp-query</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyy
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Ask natural language questions and get results directly.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="question" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">question</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Natural language question&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Natural language question</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to query&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection to query</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/structured-query</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/structured-query</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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">"user"</span>: <span class="token string">&quot;alice&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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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>
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Analyze and understand structured data (CSV, JSON, XML).</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="operation" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">operation</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;detect-type&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;generate-descriptor&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;diagnose&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&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-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">sample</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Data sample to analyze (text content)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Data sample to analyze (text content)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="type" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">type</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Enum<!-- -->:</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;csv&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;json&quot;</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;xml&quot;</span> </div> <div><div html="&lt;p&gt;Data type (required for generate-descriptor)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Data type (required for generate-descriptor)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="schema-name" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">schema-name</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Target schema name for descriptor generation (optional)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Target schema name for descriptor generation (optional)</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="options"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand options"><span class="property-name">options</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">object</span></div> <div><div html="&lt;p&gt;Format-specific options (e.g., CSV delimiter)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Format-specific options (e.g., CSV delimiter)</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/structured-diag</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/structured-diag</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Query graph embeddings to find similar entities by vector similarity.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="vectors" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">vectors</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">numbers</span></div> <div><div html="&lt;p&gt;Query embedding vector&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Query embedding vector</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="limit" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">limit</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 1000 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">10</span></div> <div><div html="&lt;p&gt;Maximum number of entities to return&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum number of entities to return</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection to search</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/graph-embeddings</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/graph-embeddings</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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">"user"</span>: <span class="token string">&quot;alice&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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Query document embeddings to find similar text chunks by vector similarity.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="vectors" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">vectors</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">numbers</span></div> <div><div html="&lt;p&gt;Query embedding vector&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Query embedding vector</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="limit" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">limit</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 1000 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">10</span></div> <div><div html="&lt;p&gt;Maximum number of document chunks to return&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum number of document chunks to return</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection to search</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/document-embeddings</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/document-embeddings</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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">"user"</span>: <span class="token string">&quot;alice&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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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" i
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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Query row embeddings to find similar rows by vector similarity on indexed fields.
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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="vectors" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">vectors</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">numbers</span></div> <div><div html="&lt;p&gt;Query embedding vector&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Query embedding vector</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="schema_name" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">schema_name</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Schema name to search within&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Schema name to search within</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="index_name" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">index_name</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Optional index name to filter search to specific index&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><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-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">limit</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span><span> <span class="sc-gUrTyB sc-cmEaii bPAaet iWTprB"> <!-- -->[ 1 .. 1000 ]<!-- --> </span></span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">10</span></div> <div><div html="&lt;p&gt;Maximum number of matches to return&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Maximum number of matches to return</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection to search&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection to search</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Successful response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Successful response</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/row-embeddings</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/row-embeddings</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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">"user"</span>: <span class="token string">&quot;alice&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;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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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
&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 (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 must be base64 encoded:&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Load text documents into processing pipeline for indexing and embedding.</p>
<h2 id="text-load-overview">Text Load Overview</h2>
<p>Fire-and-forget document loading:</p>
<ul>
<li><strong>Input</strong>: Text content (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 must be base64 encoded:</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="text" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">text</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ"> <!-- -->&lt;<!-- -->byte<!-- -->&gt;<!-- --> </span></div> <div><div html="&lt;p&gt;Text content (base64 encoded)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Text content (base64 encoded)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="id" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">id</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Document identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Document identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection for document&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection for document</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="charset" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">charset</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;utf-8&quot;</span></div> <div><div html="&lt;p&gt;Text character encoding&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Text character encoding</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="metadata"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand metadata"><span class="property-name">metadata</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">objects</span><span class="sc-gUrTyB sc-jfSnVt bPAaet kEFcTG"> (<!-- -->Triple<!-- -->) </span></div> <div><div html="&lt;p&gt;Document metadata as RDF triples&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Document metadata as RDF triples</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">202<!-- --> </strong><div html="&lt;p&gt;Document accepted for processing&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Document accepted for processing</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/text-load</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/text-load</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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">Load with RDF metadata</option></select><label>Load text document</label></div></div><div><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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;VGhpcyBpcyB0aGUgZG9jdW1lbnQgdGV4dC4uLg==&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">"user"</span>: <span class="token string">&quot;alice&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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-pane
&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-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Load binary documents (PDF, Word, etc.) into processing pipeline.</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="flow" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">flow</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">my-flow</span></div><div><div html="&lt;p&gt;Flow instance ID&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Flow instance ID</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/json</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="data" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">data</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ"> <!-- -->&lt;<!-- -->byte<!-- -->&gt;<!-- --> </span></div> <div><div html="&lt;p&gt;Document data (base64 encoded)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Document data (base64 encoded)</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="id" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">id</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><div html="&lt;p&gt;Document identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Document identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;trustgraph&quot;</span></div> <div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="collection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">collection</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;default&quot;</span></div> <div><div html="&lt;p&gt;Collection for document&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Collection for document</p>
</div></div></div></td></tr><tr class="last "><td class="sc-hAtEya sc-fGFwA-d sc-jhSXcs kddqHa eIujjv bXwTFl" kind="field" title="metadata"><span class="sc-ieZDjf bEKmDE"></span><button aria-label="expand metadata"><span class="property-name">metadata</span><svg class="sc-fbJfz dTZWxX" 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-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF">Array of </span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">objects</span><span class="sc-gUrTyB sc-jfSnVt bPAaet kEFcTG"> (<!-- -->Triple<!-- -->) </span></div> <div><div html="&lt;p&gt;Document metadata as RDF triples&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Document metadata as RDF triples</p>
</div></div></div></td></tr></tbody></table><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">202<!-- --> </strong><div html="&lt;p&gt;Document accepted for processing&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Document accepted for processing</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/flow/{flow}/service/document-load</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/flow/{flow}/service/document-load</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Request samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Example</span><div class="sc-jItqcA sc-BKAtt kKrNCs dNwfFN"><svg class="sc-ilEZpr cnAPdU" 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-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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">"user"</span>: <span class="token string">&quot;alice&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-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><div class="redoc-json"><code><span class="token punctuation">{ }</span></code></div></div></div></div></div></div><div class="react-tabs__tab-panel" role="
"><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-eDDNvO iUTsUN"><div data-section-id="operation/documentStream" id="operation/documentStream" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/ImportExport/operation/documentStream" aria-label="tag/ImportExport/operation/documentStream"></a>Stream document content from library<!-- --> </h2><div class="sc-iERabE dUdgLx"><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;user&lt;/code&gt;: User identifier (required)&lt;/li&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-iKGpAq sc-cCYyou dXXcln dHaogz"><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>user</code>: User identifier (required)</li>
<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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">query<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">user=trustgraph</span></div><div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr><tr class=""><td kind="field" title="document-id" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">document-id</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">document-id=urn:trustgraph:doc:abc123</span></div><div><div html="&lt;p&gt;Document IRI to retrieve&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Document IRI to retrieve</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="chunk-size" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">chunk-size</span></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">integer</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Default:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">1048576</span></div> <div><div html="&lt;p&gt;Chunk size in bytes (default 1MB)&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Chunk size in bytes (default 1MB)</p>
</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Document content streamed as raw bytes&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Document content streamed as raw bytes</p>
</div></button></div><div><button class="sc-caslwi kwTqVQ" disabled=""><strong class="sc-fYaxgW jJkGwY">400<!-- --> </strong><div html="&lt;p&gt;Missing required parameters&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Missing required parameters</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="get" class="sc-eGFuAY kCsPwr http-verb get">get</span><span class="sc-GJyyy dkiPkt">/api/v1/document-stream</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/document-stream</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-eDDNvO iUTsUN"><div data-section-id="operation/importCore" id="operation/importCore" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/ImportExport/operation/importCore" aria-label="tag/ImportExport/operation/importCore"></a>Import Core - bulk import triples and embeddings<!-- --> </h2><div class="sc-iERabE dUdgLx"><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;u&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;user&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// User&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;u&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;user&quot;&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;li&gt;&lt;strong&gt;user&lt;/strong&gt;: User identifier&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-iKGpAq sc-cCYyou dXXcln dHaogz"><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">"u"</span><span class="token punctuation">:</span> <span class="token string">"user"</span><span class="token punctuation">,</span> <span class="token comment">// User</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">"u"</span><span class="token punctuation">:</span> <span class="token string">"user"</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>
<li><strong>user</strong>: User identifier</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">query<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="id" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">id</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">id=core-123</span></div><div><div html="&lt;p&gt;Knowledge core ID to import&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Knowledge core ID to import</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">user=alice</span></div><div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr></tbody></table></div><h5 class="sc-irTswZ fA-dGxt">Request Body schema: <span class="sc-gXSCqT bzXJk">application/msgpack</span><div class="sc-gUrTyB sc-eKYjSU sc-dVCGSo bPAaet boAHLn iuCmqI">required</div></h5><div html="" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"></div><div><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ"> <!-- -->&lt;<!-- -->binary<!-- -->&gt;<!-- --> </span></div> <div><div html="&lt;p&gt;MessagePack stream of knowledge data&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>MessagePack stream of knowledge data</p>
</div></div></div></div><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">202<!-- --> </strong><div html="&lt;p&gt;Import accepted and processing&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Import accepted and processing</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="post" class="sc-eGFuAY ejslkd http-verb post">post</span><span class="sc-GJyyy dkiPkt">/api/v1/import-core</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/import-core</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-eDDNvO iUTsUN"><div data-section-id="operation/exportCore" id="operation/exportCore" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/ImportExport/operation/exportCore" aria-label="tag/ImportExport/operation/exportCore"></a>Export Core - bulk export triples and embeddings<!-- --> </h2><div class="sc-iERabE dUdgLx"><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;u&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;user&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// User&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;u&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;user&quot;&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;li&gt;&lt;strong&gt;user&lt;/strong&gt;: User identifier&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-iKGpAq sc-cCYyou dXXcln dHaogz"><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">"u"</span><span class="token punctuation">:</span> <span class="token string">"user"</span><span class="token punctuation">,</span> <span class="token comment">// User</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">"u"</span><span class="token punctuation">:</span> <span class="token string">"user"</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>
<li><strong>user</strong>: User identifier</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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">query<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="id" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">id</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">id=core-123</span></div><div><div html="&lt;p&gt;Knowledge core ID to export&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Knowledge core ID to export</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="user" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">user</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">user=alice</span></div><div><div html="&lt;p&gt;User identifier&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>User identifier</p>
</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Export stream&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Export stream</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="get" class="sc-eGFuAY kCsPwr http-verb get">get</span><span class="sc-GJyyy dkiPkt">/api/v1/export-core</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/export-core</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-eDDNvO eTiIZG"><div class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/WebSocket" aria-label="tag/WebSocket"></a>WebSocket</h2></div></div><div class="sc-hLseeT eiTXyS"><div class="sc-iKGpAq sc-cCYyou dXXcln dHaogz 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-eDDNvO iUTsUN"><div data-section-id="operation/websocketConnection" id="operation/websocketConnection" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/WebSocket/operation/websocketConnection" aria-label="tag/WebSocket/operation/websocketConnection"></a>WebSocket - multiplexed service interface<!-- --> </h2><div class="sc-iERabE dUdgLx"><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;Global 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-Hosted 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-hosted services. Omit for 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;Global Services&lt;/strong&gt; (no &lt;code&gt;flow&lt;/code&gt; parameter):&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-Hosted Services&lt;/strong&gt; (require &lt;code&gt;flow&lt;/code&gt; parameter):&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;When &lt;code&gt;GATEWAY_SECRET&lt;/code&gt; is set, include bearer token:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;As query parameter: &lt;code&gt;ws://localhost:8088/api/v1/socket?token=&amp;lt;token&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Or in WebSocket subprotocol header&lt;/li&gt;
&lt;/ul&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-iKGpAq sc-cCYyou dXXcln dHaogz"><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>Global 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-Hosted 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-hosted services. Omit for 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>Global Services</strong> (no <code>flow</code> parameter):</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-Hosted Services</strong> (require <code>flow</code> parameter):</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>When <code>GATEWAY_SECRET</code> is set, include bearer token:</p>
<ul>
<li>As query parameter: <code>ws://localhost:8088/api/v1/socket?token=&lt;token&gt;</code></li>
<li>Or in WebSocket subprotocol header</li>
</ul>
<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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">header<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class=""><td kind="field" title="Upgrade" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">Upgrade</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Value<!-- -->:</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;websocket&quot;</span> </div> <div><div html="&lt;p&gt;WebSocket upgrade header&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>WebSocket upgrade header</p>
</div></div></div></td></tr><tr class="last "><td kind="field" title="Connection" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">Connection</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div><div><span class="sc-gUrTyB bPAaet"> <!-- -->Value<!-- -->:</span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">&quot;Upgrade&quot;</span> </div> <div><div html="&lt;p&gt;Connection upgrade header&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Connection upgrade header</p>
</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi gSNqow" disabled=""><strong class="sc-fYaxgW jJkGwY">101<!-- --> </strong><div html="&lt;p&gt;Switching Protocols - WebSocket connection established&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Switching Protocols - WebSocket connection established</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="get" class="sc-eGFuAY kCsPwr http-verb get">get</span><span class="sc-GJyyy dkiPkt">/api/v1/socket</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/v1/socket</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-eDDNvO eTiIZG"><div class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Metrics" aria-label="tag/Metrics"></a>Metrics</h2></div></div><div class="sc-hLseeT eiTXyS"><div class="sc-iKGpAq sc-cCYyou dXXcln dHaogz 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-eDDNvO iUTsUN"><div data-section-id="operation/getMetrics" id="operation/getMetrics" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Metrics/operation/getMetrics" aria-label="tag/Metrics/operation/getMetrics"></a>Metrics - Prometheus metrics endpoint<!-- --> </h2><div class="sc-iERabE dUdgLx"><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-iKGpAq sc-cCYyou dXXcln dHaogz"><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-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Prometheus metrics&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Prometheus metrics</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="get" class="sc-eGFuAY kCsPwr http-verb get">get</span><span class="sc-GJyyy dkiPkt">/api/metrics</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/metrics</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-eDDNvO iUTsUN"><div data-section-id="operation/getMetricsPath" id="operation/getMetricsPath" class="sc-iAEyYj cmAaWK"><div class="sc-hLseeT hoYmkG"><h2 class="sc-qRumy bcNKdh"><a class="sc-csCMJq jSIqAu" href="#tag/Metrics/operation/getMetricsPath" aria-label="tag/Metrics/operation/getMetricsPath"></a>Metrics - Prometheus metrics with path<!-- --> </h2><div class="sc-iERabE dUdgLx"><div html="&lt;p&gt;Proxy to Prometheus metrics with optional path parameter.&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln dHaogz"><p>Proxy to Prometheus metrics with optional path parameter.</p>
</div></div><div class="sc-ftWlEC pzAgN"><div class="sc-cYRmzp kuPPCO"><h5 class="sc-irTswZ sc-jOQpHb fA-dGxt qtYpT">Authorizations:</h5><svg class="sc-fbJfz eiOVYa" 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-jTsRVM gZngKQ"><span class="sc-dskThK ddMcul"><span class="sc-hNeXkj cLOXvd"><i>bearerAuth</i></span></span></div></div><div><h5 class="sc-irTswZ fA-dGxt">path<!-- --> Parameters</h5><table class="sc-hIqOWV dybric"><tbody><tr class="last "><td kind="field" title="path" class="sc-hAtEya sc-fGFwA-d kddqHa eIujjv"><span class="sc-ieZDjf bEKmDE"></span><span class="property-name">path</span><div class="sc-gUrTyB sc-eKYjSU bPAaet boAHLn">required</div></td><td class="sc-blLsxE bmauLr"><div><div><span class="sc-gUrTyB sc-kZGvTq bPAaet UMvzF"></span><span class="sc-gUrTyB sc-iMfspz bPAaet fEQrHJ">string</span></div> <div><span class="sc-gUrTyB bPAaet"> <!-- -->Example:<!-- --> </span> <span class="sc-gUrTyB sc-ldFCYc bPAaet eShQxX">query</span></div><div><div html="&lt;p&gt;Path to specific metrics endpoint&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Path to specific metrics endpoint</p>
</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fJjTez hsJdXF">Responses</h3><div><button class="sc-caslwi brztng"><svg class="sc-fbJfz iZiZiV" 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-fYaxgW jJkGwY">200<!-- --> </strong><div html="&lt;p&gt;Prometheus metrics&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Prometheus metrics</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">401<!-- --> </strong><div html="&lt;p&gt;Unauthorized - Invalid or missing bearer token&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Unauthorized - Invalid or missing bearer token</p>
</div></button></div><div><button class="sc-caslwi fvWYOy"><svg class="sc-fbJfz kiMFkB" 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-fYaxgW jJkGwY">500<!-- --> </strong><div html="&lt;p&gt;Error response&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou sc-cjERFZ dXXcln fTBBlJ dkmSdy"><p>Error response</p>
</div></button></div></div></div><div class="sc-jTrPJt sc-gLDzao dVngAA fYLqku"><div class="sc-fYzRkH dHdMVa"><button class="sc-jYvNnh iWrBta"><span type="get" class="sc-eGFuAY kCsPwr http-verb get">get</span><span class="sc-GJyyy dkiPkt">/api/metrics/{path}</span><svg class="sc-fbJfz ivEQut" 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-fnxdBX dplsyJ"><div class="sc-llcuoK cNCbuV"><div html="&lt;p&gt;Local development server&lt;/p&gt;
" class="sc-iKGpAq sc-cCYyou dXXcln cFvDiF"><p>Local development server</p>
</div><div tabindex="0" role="button"><div class="sc-jnsZEx eobUac"><span>http://localhost:8088</span>/api/metrics/{path}</div></div></div></div></div><div><h3 class="sc-kFuwaQ dEbuTz"> <!-- -->Response samples<!-- --> </h3><div class="sc-cyRfQY lbIFgo" 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-cPlDXk gpxHhK"><span class="sc-bCDidX ccmcKc">Content type</span><div class="sc-dQelHO eMpCUl">application/json</div></div><div class="sc-hVkBjf ksuOBo"><div class="sc-cRZddz iLjyyA"><div class="sc-gjTGSz btblAa"><button><div class="sc-jegxcw fJsoyS">Copy</div></button></div><div tabindex="0" class="sc-iKGpAq dXXcln sc-jMAIzW jKIGwd"><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-emEvRt jYOHCb"></div></div></div>
<script>
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.1.0","info":{"title":"TrustGraph API Gateway","version":"2.1","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**: Configuration, flow management, knowledge storage, library management\n- **Flow-Hosted 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## Service Types\n\n### Global Services\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-Hosted Services\nRequire running flow instance, accessed 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, row-embeddings\n- Data loading: text-load, document-load\n- Utilities: mcp-tool, structured-diag\n\n## Authentication\n\nBearer token authentication when `GATEWAY_SECRET` environment variable is set.\nInclude token in Authorization header:\n```\nAuthorization: Bearer <token>\n```\n\nIf `GATEWAY_SECRET` is not set, API runs without authentication (development mode).\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 (global service)"},{"name":"Flow","description":"Flow lifecycle and blueprint management (global service)"},{"name":"Librarian","description":"Document library management (global service)"},{"name":"Knowledge","description":"Knowledge graph core management (global service)"},{"name":"Collection","description":"Collection metadata management (global service)"},{"name":"Flow Services","description":"Services hosted within flow instances"},{"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","description":"Manage TrustGraph configuration including flows, prompts, token costs, parameter types, and more.\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","se
var container = document.getElementById('redoc');
Redoc.hydrate(__redoc_state, container);
</script>
</body>
</html>