{"id":7485,"date":"2026-08-19T19:10:09","date_gmt":"2026-08-19T19:10:09","guid":{"rendered":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/integrations\/api\/"},"modified":"2026-08-19T19:10:09","modified_gmt":"2026-08-19T19:10:09","slug":"api","status":"publish","type":"wvn_doc","link":"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/integrations\/api\/","title":{"rendered":"API developer"},"content":{"rendered":"<h1>API developer<\/h1>\n<p>An HTTP API allows you to integrate WivenLLM into your applications: to feed<br \/>\nspaces, ask questions, manage users, leverage the<br \/>\nconversations.<\/p>\n<blockquote>\n<p>Available for server or hosted deployment.<\/p>\n<\/blockquote>\n<hr \/>\n<h2>Authentication<\/h2>\n<p>Create a key in <code>Settings \u2192 API Keys<\/code>. It is only displayed at the<br \/>\ncreation.<\/p>\n<p>Each request carries the key in the header. <code>Authorization<\/code> :<\/p>\n<pre><code class=\"language-bash\">curl https:\/\/your-instance\/api\/v1\/workspaces -H &quot;Authorization: Bearer YOUR_API_KEY&quot;\"\n<\/code><\/pre>\n<p><strong>A key provides full access to the API.<\/strong> Create one per integration,<br \/>\nRevoke what is no longer needed, and never publish it in shared code.<br \/>\nKey creations and deletions are logged.<\/p>\n<hr \/>\n<h2>Interactive documentation<\/h2>\n<p>Interactive API documentation is provided by the instance itself.<br \/>\nlists all entry points with their parameters and allows you to try them out.<br \/>\nThis is the up-to-date reference for <strong>your<\/strong> version.<\/p>\n<p>It can be disabled in production via configuration.<\/p>\n<hr \/>\n<h2>Main entry points<\/h2>\n<p>All addresses are relative to <code>\/api<\/code>.<\/p>\n<h3>Workspaces<\/h3>\n<table>\n<thead>\n<tr>\n<th>Method<\/th>\n<th>Path<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>GET<\/code><\/td>\n<td><code>\/v1\/workspaces<\/code><\/td>\n<td>List the spaces<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/new<\/code><\/td>\n<td>Create a space<\/td>\n<\/tr>\n<tr>\n<td><code>GET<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}<\/code><\/td>\n<td>Detail of a space<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/update<\/code><\/td>\n<td>Change your settings<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/update-embeddings<\/code><\/td>\n<td>Add or remove documents<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/update-pin<\/code><\/td>\n<td>Pin or unpin a document<\/td>\n<\/tr>\n<tr>\n<td><code>DELETE<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}<\/code><\/td>\n<td>Delete a space<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Conversation<\/h3>\n<table>\n<thead>\n<tr>\n<th>Method<\/th>\n<th>Path<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/chat<\/code><\/td>\n<td>Ask a question, get a full answer<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/stream-chat<\/code><\/td>\n<td>Likewise, continuous flow response<\/td>\n<\/tr>\n<tr>\n<td><code>GET<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/chats<\/code><\/td>\n<td>History of space<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/vector-search<\/code><\/td>\n<td>Documentary research alone, without generation<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Example :<\/strong><\/p>\n<pre><code class=\"language-bash\">curl -X POST https:\/\/your-instance\/api\/v1\/workspace\/dupont-folder\/chat -H &quot;Authorization: Bearer YOUR_API_KEY&quot; -H &quot;Content-Type: application\/json&quot; -d &#039;{ &quot;message&quot;: &quot;What is the lease termination period?&quot;, &quot;mode&quot;: &quot;query&quot; }&#039;\"\n<\/code><\/pre>\n<p>The response contains the generated text and the <strong>sources<\/strong> used.<\/p>\n<p><code>vector-search<\/code> is useful when you only want to find the passages<br \/>\nrelevant and process them yourself, without going through a template.<\/p>\n<h3>Discussion thread<\/h3>\n<table>\n<thead>\n<tr>\n<th>Method<\/th>\n<th>Path<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/thread\/new<\/code><\/td>\n<td>Create a thread<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/thread\/{threadSlug}\/chat<\/code><\/td>\n<td>Write in a thread<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/thread\/{threadSlug}\/stream-chat<\/code><\/td>\n<td>Likewise, in continuous flow<\/td>\n<\/tr>\n<tr>\n<td><code>GET<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/thread\/{threadSlug}\/chats<\/code><\/td>\n<td>History of the thread<\/td>\n<\/tr>\n<tr>\n<td><code>DELETE<\/code><\/td>\n<td><code>\/v1\/workspace\/{slug}\/thread\/{threadSlug}<\/code><\/td>\n<td>Delete the thread<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The threads allow for multiple independent conversations to be maintained for<br \/>\ndifferent end users within the same space.<\/p>\n<h3>Documents<\/h3>\n<table>\n<thead>\n<tr>\n<th>Method<\/th>\n<th>Path<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/document\/upload<\/code><\/td>\n<td>Upload a file<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/document\/upload-link<\/code><\/td>\n<td>Import a URL<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/document\/raw-text<\/code><\/td>\n<td>Inject raw text<\/td>\n<\/tr>\n<tr>\n<td><code>GET<\/code><\/td>\n<td><code>\/v1\/documents<\/code><\/td>\n<td>List the documents<\/td>\n<\/tr>\n<tr>\n<td><code>GET<\/code><\/td>\n<td><code>\/v1\/document\/accepted-file-types<\/code><\/td>\n<td>Accepted formats<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/document\/create-folder<\/code><\/td>\n<td>Create a folder<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/document\/move-files<\/code><\/td>\n<td>Move documents<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p><strong>Reminder :<\/strong> Uploading a document does not make it searchable. Next, you need to...<br \/>\nadd it to a space via <code>update-embeddings<\/code>.<\/p>\n<\/blockquote>\n<h3>Administration<\/h3>\n<table>\n<thead>\n<tr>\n<th>Method<\/th>\n<th>Path<\/th>\n<th>Role<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>GET<\/code><\/td>\n<td><code>\/v1\/admin\/users<\/code><\/td>\n<td>List users<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/admin\/users\/new<\/code><\/td>\n<td>Create a user<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/admin\/invite\/new<\/code><\/td>\n<td>Create an invitation<\/td>\n<\/tr>\n<tr>\n<td><code>GET<\/code><\/td>\n<td><code>\/v1\/admin\/workspace-chats<\/code><\/td>\n<td>Conversations within the body<\/td>\n<\/tr>\n<tr>\n<td><code>POST<\/code><\/td>\n<td><code>\/v1\/admin\/workspaces\/{id}\/update-users<\/code><\/td>\n<td>Managing the members of a space<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Widgets<\/h3>\n<p>Creation, consultation and monitoring of widgets and their conversations.<\/p>\n<h3>System<\/h3>\n<p>Information about the instance, number of vectors, export of conversations.<\/p>\n<hr \/>\n<h2>OpenAI compatibility<\/h2>\n<p>A set of entry points replicates the interface of the OpenAI standard:<\/p>\n<ul>\n<li><code>POST \/v1\/openai\/chat\/completions<\/code><\/li>\n<li><code>POST \/v1\/openai\/embeddings<\/code><\/li>\n<li><code>GET \/v1\/openai\/models<\/code><\/li>\n<\/ul>\n<p>The advantage: an application already written for this standard works with<br \/>\nWivenLLM <strong>by changing the base address and the key<\/strong>. The model name<br \/>\ncorresponds to the workspace to be queried, which allows you to benefit from<br \/>\nits documentary context.<\/p>\n<p>This is the shortest way to connect an existing tool to your base<br \/>\nprivate documentary.<\/p>\n<hr \/>\n<h2>Best practices for integration<\/h2>\n<p><strong>One space per use.<\/strong> Isolate areas exposed to application from spaces<br \/>\nused by your employees.<\/p>\n<p><strong>One thread per end user.<\/strong> If your application serves multiple people,<br \/>\nCreate a separate thread for each person: contexts should not mix.<\/p>\n<p><strong>Process the mode.<\/strong> The parameter <code>fashion<\/code> (<code>cat<\/code> Or <code>query<\/code>is decisive for a<br \/>\nintegration: <code>query<\/code> avoids invented answers when the database does not contain<br \/>\ninformation.<\/p>\n<p><strong>Manage errors and latency.<\/strong> A response may take several seconds.,<br \/>\nmore with an agent. Expect appropriate waiting times and processing<br \/>\nmodel provider failures.<\/p>\n<p><strong>Use continuous flow<\/strong> for any interface where a human is waiting: the<br \/>\nThe response appears as it is displayed, the perceived wait is much shorter.<\/p>\n<p><strong>Utilize the sources.<\/strong> The responses return the extracts used:<br \/>\nDisplay them, that&#039;s what makes the integration verifiable.<\/p>","protected":false},"parent":7452,"menu_order":602,"template":"","meta":[],"class_list":["post-7485","wvn_doc","type-wvn_doc","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>API d\u00e9veloppeur \u2014 Documentation WivenLLM<\/title>\n<meta name=\"description\" content=\"Piloter WivenLLM depuis vos applications \u2014 authentification, principaux points d&#039;entr\u00e9e et compatibilit\u00e9 OpenAI.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/integrations\/api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"API d\u00e9veloppeur \u2014 Documentation WivenLLM\" \/>\n<meta property=\"og:description\" content=\"Piloter WivenLLM depuis vos applications \u2014 authentification, principaux points d&#039;entr\u00e9e et compatibilit\u00e9 OpenAI.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/integrations\/api\/\" \/>\n<meta property=\"og:site_name\" content=\"Wiven AI\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/integrations\\\/api\\\/\",\"url\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/integrations\\\/api\\\/\",\"name\":\"API d\u00e9veloppeur \u2014 Documentation WivenLLM\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/#website\"},\"datePublished\":\"2026-08-19T19:10:09+00:00\",\"description\":\"Piloter WivenLLM depuis vos applications \u2014 authentification, principaux points d'entr\u00e9e et compatibilit\u00e9 OpenAI.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/integrations\\\/api\\\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/integrations\\\/api\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/integrations\\\/api\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.wiven.ai\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Int\u00e9grations\",\"item\":\"https:\\\/\\\/www.wiven.ai\\\/wiven-llm\\\/docs\\\/integrations\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"API d\u00e9veloppeur\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.wiven.ai\\\/#website\",\"url\":\"https:\\\/\\\/www.wiven.ai\\\/\",\"name\":\"Wiven AI\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.wiven.ai\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Developer API \u2014 WivenLLM Documentation","description":"Control WivenLLM from your applications \u2014 authentication, main entry points and OpenAI compatibility.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/integrations\/api\/","og_locale":"en_US","og_type":"article","og_title":"API d\u00e9veloppeur \u2014 Documentation WivenLLM","og_description":"Piloter WivenLLM depuis vos applications \u2014 authentification, principaux points d'entr\u00e9e et compatibilit\u00e9 OpenAI.","og_url":"https:\/\/www.wiven.ai\/en\/wiven-llm\/docs\/integrations\/api\/","og_site_name":"Wiven AI","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/integrations\/api\/","url":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/integrations\/api\/","name":"Developer API \u2014 WivenLLM Documentation","isPartOf":{"@id":"https:\/\/www.wiven.ai\/#website"},"datePublished":"2026-08-19T19:10:09+00:00","description":"Control WivenLLM from your applications \u2014 authentication, main entry points and OpenAI compatibility.","breadcrumb":{"@id":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/integrations\/api\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wiven.ai\/wiven-llm\/docs\/integrations\/api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/integrations\/api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.wiven.ai\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/"},{"@type":"ListItem","position":3,"name":"Int\u00e9grations","item":"https:\/\/www.wiven.ai\/wiven-llm\/docs\/integrations\/"},{"@type":"ListItem","position":4,"name":"API d\u00e9veloppeur"}]},{"@type":"WebSite","@id":"https:\/\/www.wiven.ai\/#website","url":"https:\/\/www.wiven.ai\/","name":"Wiven AI","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wiven.ai\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"}]}},"_links":{"self":[{"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/wvn_doc\/7485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/wvn_doc"}],"about":[{"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/types\/wvn_doc"}],"up":[{"embeddable":true,"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/wvn_doc\/7452"}],"wp:attachment":[{"href":"https:\/\/www.wiven.ai\/en\/wp-json\/wp\/v2\/media?parent=7485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}