[{"data":1,"prerenderedAt":534},["ShallowReactive",2],{"docs:\u002Fdocs\u002Fintegrations\u002Fhttp":3},{"id":4,"title":5,"body":6,"description":525,"extension":526,"meta":527,"navigation":528,"path":530,"seo":531,"stem":532,"__hash__":533},"docs\u002Fdocs\u002Fintegrations\u002Fhttp.md","HTTP API",{"type":7,"value":8,"toc":514},"minimark",[9,13,18,26,33,117,120,211,217,220,226,229,235,313,316,322,325,371,375,486,490,510],[10,11,12],"p",{},"The SDKs are convenience wrappers around a small JSON HTTP API. Anything that can make a network request can integrate.",[14,15,17],"h2",{"id":16},"endpoints","Endpoints",[19,20,22],"h3",{"id":21},"post-register",[23,24,25],"code",{},"POST \u002Fregister",[10,27,28,29,32],{},"Register an agent. Idempotent — calling it again with the same ",[23,30,31],{},"agent_id"," is a no-op on the agent record but refreshes the rule_hash.",[34,35,40],"pre",{"className":36,"code":37,"language":38,"meta":39,"style":39},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","POST \u002Fregister\ncontent-type: application\u002Fjson\n\n{\n  \"agent_id\": \"support-bot-prod\",\n  \"org\": \"acme\",\n  \"jurisdiction\": \"EU\",\n  \"name\": \"Support bot · production\",\n  \"model\": \"gpt-4o\",\n  \"tools\": [\"search\", \"fetch\"],\n  \"capabilities\": [\"consumer_chatbot\"]\n}\n","http","",[23,41,42,50,56,63,69,75,81,87,93,99,105,111],{"__ignoreMap":39},[43,44,47],"span",{"class":45,"line":46},"line",1,[43,48,49],{},"POST \u002Fregister\n",[43,51,53],{"class":45,"line":52},2,[43,54,55],{},"content-type: application\u002Fjson\n",[43,57,59],{"class":45,"line":58},3,[43,60,62],{"emptyLinePlaceholder":61},true,"\n",[43,64,66],{"class":45,"line":65},4,[43,67,68],{},"{\n",[43,70,72],{"class":45,"line":71},5,[43,73,74],{},"  \"agent_id\": \"support-bot-prod\",\n",[43,76,78],{"class":45,"line":77},6,[43,79,80],{},"  \"org\": \"acme\",\n",[43,82,84],{"class":45,"line":83},7,[43,85,86],{},"  \"jurisdiction\": \"EU\",\n",[43,88,90],{"class":45,"line":89},8,[43,91,92],{},"  \"name\": \"Support bot · production\",\n",[43,94,96],{"class":45,"line":95},9,[43,97,98],{},"  \"model\": \"gpt-4o\",\n",[43,100,102],{"class":45,"line":101},10,[43,103,104],{},"  \"tools\": [\"search\", \"fetch\"],\n",[43,106,108],{"class":45,"line":107},11,[43,109,110],{},"  \"capabilities\": [\"consumer_chatbot\"]\n",[43,112,114],{"class":45,"line":113},12,[43,115,116],{},"}\n",[10,118,119],{},"Response:",[34,121,125],{"className":122,"code":123,"language":124,"meta":39,"style":39},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"ok\": true,\n  \"rule_hash\": \"abc123...\",\n  \"verbosity\": \"normal\",\n  \"channels\": []\n}\n","json",[23,126,127,132,150,173,193,207],{"__ignoreMap":39},[43,128,129],{"class":45,"line":46},[43,130,68],{"class":131},"sMK4o",[43,133,134,137,141,144,147],{"class":45,"line":52},[43,135,136],{"class":131},"  \"",[43,138,140],{"class":139},"spNyl","ok",[43,142,143],{"class":131},"\"",[43,145,146],{"class":131},":",[43,148,149],{"class":131}," true,\n",[43,151,152,154,157,159,161,164,168,170],{"class":45,"line":58},[43,153,136],{"class":131},[43,155,156],{"class":139},"rule_hash",[43,158,143],{"class":131},[43,160,146],{"class":131},[43,162,163],{"class":131}," \"",[43,165,167],{"class":166},"sfazB","abc123...",[43,169,143],{"class":131},[43,171,172],{"class":131},",\n",[43,174,175,177,180,182,184,186,189,191],{"class":45,"line":65},[43,176,136],{"class":131},[43,178,179],{"class":139},"verbosity",[43,181,143],{"class":131},[43,183,146],{"class":131},[43,185,163],{"class":131},[43,187,188],{"class":166},"normal",[43,190,143],{"class":131},[43,192,172],{"class":131},[43,194,195,197,200,202,204],{"class":45,"line":71},[43,196,136],{"class":131},[43,198,199],{"class":139},"channels",[43,201,143],{"class":131},[43,203,146],{"class":131},[43,205,206],{"class":131}," []\n",[43,208,209],{"class":45,"line":77},[43,210,116],{"class":131},[19,212,214],{"id":213},"get-rulesjurisdiction",[23,215,216],{},"GET \u002Frules\u002F\u003Cjurisdiction>",[10,218,219],{},"Returns the active ruleset for a jurisdiction (or a signed bundle envelope when the deployment is in signed mode). The SDK fetches this on register and on every rule_hash drift.",[19,221,223],{"id":222},"get-policiesorg",[23,224,225],{},"GET \u002Fpolicies\u002F\u003Corg>",[10,227,228],{},"Returns the org-level policy overlay (optional — 404 is fine).",[19,230,232],{"id":231},"post-telemetry",[23,233,234],{},"POST \u002Ftelemetry",[34,236,238],{"className":36,"code":237,"language":38,"meta":39,"style":39},"POST \u002Ftelemetry\ncontent-type: application\u002Fjson\n\n{\n  \"agent_id\": \"support-bot-prod\",\n  \"events\": [\n    {\n      \"type\": \"agent.invocation.start\",\n      \"ts\": 1746478291000,\n      \"agent_id\": \"support-bot-prod\",\n      \"rule_hash\": \"abc123...\",\n      \"payload\": { \"name\": \"chat.completions.create\" }\n    }\n  ]\n}\n",[23,239,240,245,249,253,257,261,266,271,276,281,286,291,296,302,308],{"__ignoreMap":39},[43,241,242],{"class":45,"line":46},[43,243,244],{},"POST \u002Ftelemetry\n",[43,246,247],{"class":45,"line":52},[43,248,55],{},[43,250,251],{"class":45,"line":58},[43,252,62],{"emptyLinePlaceholder":61},[43,254,255],{"class":45,"line":65},[43,256,68],{},[43,258,259],{"class":45,"line":71},[43,260,74],{},[43,262,263],{"class":45,"line":77},[43,264,265],{},"  \"events\": [\n",[43,267,268],{"class":45,"line":83},[43,269,270],{},"    {\n",[43,272,273],{"class":45,"line":89},[43,274,275],{},"      \"type\": \"agent.invocation.start\",\n",[43,277,278],{"class":45,"line":95},[43,279,280],{},"      \"ts\": 1746478291000,\n",[43,282,283],{"class":45,"line":101},[43,284,285],{},"      \"agent_id\": \"support-bot-prod\",\n",[43,287,288],{"class":45,"line":107},[43,289,290],{},"      \"rule_hash\": \"abc123...\",\n",[43,292,293],{"class":45,"line":113},[43,294,295],{},"      \"payload\": { \"name\": \"chat.completions.create\" }\n",[43,297,299],{"class":45,"line":298},13,[43,300,301],{},"    }\n",[43,303,305],{"class":45,"line":304},14,[43,306,307],{},"  ]\n",[43,309,311],{"class":45,"line":310},15,[43,312,116],{},[10,314,315],{},"Events are batched and durably enqueued before the response returns.",[19,317,319],{"id":318},"get-agentsagent_idsync",[23,320,321],{},"GET \u002Fagents\u002F\u003Cagent_id>\u002Fsync",[10,323,324],{},"Polls for verbosity drift and rule_hash changes. The SDK calls this every 30 seconds.",[34,326,328],{"className":122,"code":327,"language":124,"meta":39,"style":39},"{ \"verbosity\": \"debug\", \"rule_hash\": \"def456...\" }\n",[23,329,330],{"__ignoreMap":39},[43,331,332,335,337,339,341,343,345,348,350,353,355,357,359,361,363,366,368],{"class":45,"line":46},[43,333,334],{"class":131},"{",[43,336,163],{"class":131},[43,338,179],{"class":139},[43,340,143],{"class":131},[43,342,146],{"class":131},[43,344,163],{"class":131},[43,346,347],{"class":166},"debug",[43,349,143],{"class":131},[43,351,352],{"class":131},",",[43,354,163],{"class":131},[43,356,156],{"class":139},[43,358,143],{"class":131},[43,360,146],{"class":131},[43,362,163],{"class":131},[43,364,365],{"class":166},"def456...",[43,367,143],{"class":131},[43,369,370],{"class":131}," }\n",[14,372,374],{"id":373},"canonical-event-types","Canonical event types",[376,377,378,391],"table",{},[379,380,381],"thead",{},[382,383,384,388],"tr",{},[385,386,387],"th",{},"Event",[385,389,390],{},"When",[392,393,394,405,422,436,446,456,466,476],"tbody",{},[382,395,396,402],{},[397,398,399],"td",{},[23,400,401],{},"agent.classified",[397,403,404],{},"Once after register, when tier is computed",[382,406,407,419],{},[397,408,409,412,413,412,416],{},[23,410,411],{},"agent.invocation.start"," \u002F ",[23,414,415],{},".end",[23,417,418],{},".error",[397,420,421],{},"Around any wrapped or observed call",[382,423,424,433],{},[397,425,426,412,429,412,431],{},[23,427,428],{},"agent.tool.start",[23,430,415],{},[23,432,418],{},[397,434,435],{},"Tool calls",[382,437,438,443],{},[397,439,440],{},[23,441,442],{},"agent.step",[397,444,445],{},"Per-step events from CrewAI \u002F LangChain agent actions",[382,447,448,453],{},[397,449,450],{},[23,451,452],{},"agent.handoff",[397,454,455],{},"Multi-agent handoffs",[382,457,458,463],{},[397,459,460],{},[23,461,462],{},"decision.made",[397,464,465],{},"Tier 3+ decisions (full payload retention)",[382,467,468,473],{},[397,469,470],{},[23,471,472],{},"human_review.recorded",[397,474,475],{},"Human review of a prior decision",[382,477,478,483],{},[397,479,480],{},[23,481,482],{},"agent.verbosity_changed",[397,484,485],{},"Sync loop picked up a verbosity change",[14,487,489],{"id":488},"see-also","See also",[491,492,493],"ul",{},[494,495,496,501,502,501,506],"li",{},[497,498,500],"a",{"href":499},"\u002Fdocs\u002Fintegrations\u002Fopentelemetry","OpenTelemetry"," · ",[497,503,505],{"href":504},"\u002Fdocs\u002Fintegrations\u002Fmcp","MCP",[497,507,509],{"href":508},"\u002Fdocs\u002Fgetting-started","Getting started",[511,512,513],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":39,"searchDepth":52,"depth":52,"links":515},[516,523,524],{"id":16,"depth":52,"text":17,"children":517},[518,519,520,521,522],{"id":21,"depth":58,"text":25},{"id":213,"depth":58,"text":216},{"id":222,"depth":58,"text":225},{"id":231,"depth":58,"text":234},{"id":318,"depth":58,"text":321},{"id":373,"depth":52,"text":374},{"id":488,"depth":52,"text":489},"The Iqrar wire format — three endpoints (register, rules, telemetry) cover 90% of integrations. Use this when no SDK or adapter exists for your stack.","md",{},{"title":5,"order":529},70,"\u002Fdocs\u002Fintegrations\u002Fhttp",{"title":5,"description":525},"docs\u002Fintegrations\u002Fhttp","pmjwAmwa-Ij1y3VWru-jBeUgJiksSNFX2YoTxtDzBCU",1778064965625]