Skip to content

Knowledge bases

Create knowledge base import

Start importing a knowledge base bundle produced by an export. The response carries signed transfer instructions for the archive; once its bytes are uploaded, complete the import to create the knowledge base. Bundles must be `.zip` archives of at most 5 GiB. OAuth scope: `api:write`.

POST/api/v2/knowledge/imports

Start importing a knowledge base bundle produced by an export. The response carries signed transfer instructions for the archive; once its bytes are uploaded, complete the import to create the knowledge base. Bundles must be .zip archives of at most 5 GiB.

OAuth scope: api:write.

Authentication

Send a personal or workspace API key in X-API-Key. See key types and access; operations that reject workspace keys say so in their description.

Send X-API-Key in the request header.

Alternatively

Send a Sim OAuth access token in Authorization: Bearer. See OAuth authentication and scopes.

Authorization: Bearer YOUR_ACCESS_TOKEN

Required scopes: api:write

OAuth flows
json
{
  "authorizationCode": {
    "authorizationUrl": "https://www.sim.ai/api/auth/oauth2/authorize",
    "tokenUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "refreshUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "scopes": {
      "api:read": "Read your workspaces, workflows, files, tables, and logs",
      "api:write": "Read, create, change, run, and delete resources in your workspaces",
      "offline_access": "Stay signed in without asking again"
    }
  }
}

OAuth scope: api:write.

Request body

Required

Workspace, bundle archive, and an optional name for the new knowledge base.

object

Workspace, bundle archive, and an optional name for the new knowledge base.

3 fields
workspaceIdstringRequired

Workspace in which to create the knowledge base.

minLength
1
maxLength
128
namestring

Name for the new knowledge base; defaults to the bundle's own name.

minLength
1
maxLength
255
sourceobjectRequired

Bundle archive uploaded through signed transfer instructions.

4 fields
typestringRequired

Upload-backed import discriminator.

const
upload
namestringRequired

Bundle filename, as produced by a knowledge base export.

minLength
1
maxLength
255
contentTypestringRequired

Bundle MIME type, normally application/zip.

minLength
1
maxLength
255
sizeintegerRequired

Exact bundle size in bytes; the maximum is 5 GiB.

minimum
1
maximum
5368709120

Additional properties are not allowed.

Additional properties are not allowed.

Request example 1

json
{
  "workspaceId": "a91c4b2e-6d3f-4e8a-b5c7-0d9e2f1a8c64",
  "name": "Product Documentation",
  "source": {
    "type": "upload",
    "name": "product-documentation.simkb.zip",
    "contentType": "application/zip",
    "size": 7340032
  }
}

Responses

201

The created import and its upload instructions.

object

The import and the instructions for uploading its bundle.

1 field
dataobjectRequired

Response data.

3 fields
sessionobjectRequired

Created import, waiting for its upload.

13 fields
idstringRequired

Unique knowledge-base import identifier.

workspaceIdstringRequired

Workspace that owns the import.

statusstringRequired

Current import lifecycle state.

enum
["uploading","processing","completed","failed","canceled","expired"]
knowledgeBaseIdvalueRequired

Knowledge base the import created, or null until it exists.

Schema details

Any of

Option 1string
Option 2null
documentsTotalintegerRequired

Documents the bundle carries; zero until its manifest has been read.

minimum
0
maximum
9007199254740991
documentsImportedintegerRequired

Documents created so far. A document whose vectors could not be reused is indexed afterwards, as an upload is, so it may still be processing in the knowledge base.

minimum
0
maximum
9007199254740991
documentsFailedintegerRequired

Documents that could not be imported. Non-zero still allows completed.

minimum
0
maximum
9007199254740991
vectorsReusedbooleanRequired

Whether the bundle's vectors matched this deployment's embedding model and were stored without re-embedding.

failuresarrayRequired

Bounded sample of the documents that could not be imported.

Schema details
Array itemobject

One bundle document the import could not bring over.

2 fields
filenamestringRequired

Filename of the document that was not imported.

messagestringRequired

Why the document was not imported.

Additional properties are not allowed.

errorvalueRequired

Terminal failure reason, or null.

Schema details

Any of

Option 1string
Option 2null
createdAtstringRequired

ISO 8601 creation timestamp.

format
date-time
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
updatedAtstringRequired

ISO 8601 last-update timestamp.

format
date-time
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
completedAtvalueRequired

ISO 8601 completion timestamp, or null.

Schema details

Any of

Option 1string
format
date-time
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Option 2null

Additional properties are not allowed.

uploadTokenstringRequired

Signed token for upload control requests.

minLength
1
transfervalueRequired

Signed bundle upload instructions.

Schema details

Exactly one of

Option 1object

Instructions for uploading bytes to one signed URL.

4 fields
methodstringRequired

Upload strategy discriminator.

const
put
urlstringRequired

Signed URL to which the file bytes are uploaded. Upload bytes with PUT and exactly the supplied headers; never construct or modify the signed URL. Treat any 2xx as success. Sim-hosted URLs return an empty 204 and v2 JSON errors. Object-storage URLs may return 200 or 201 and provider-specific errors, often XML.

format
uri
headersobjectRequired

Headers that must be included with the upload request.

Schema details
Additional propertiesstring
expiresAtstringRequired

ISO 8601 expiration time for this signed URL. This is the URL's own expiry and is normally earlier than the upload session's expiresAt: the session stays open for later part, status, completion, and abort requests, but the bytes must be uploaded before this time. Once it passes, the storage provider rejects the upload and a new upload session must be created.

format
date-time
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$

Additional properties are not allowed.

Option 2object

Instructions for splitting bytes into a multipart upload.

3 fields
methodstringRequired

Upload strategy discriminator.

const
multipart
partSizeintegerRequired

Required size of each non-final part in bytes.

maximum
9007199254740991
exclusiveMinimum
0
partCountintegerRequired

Total number of upload parts.

maximum
640
exclusiveMinimum
0

Additional properties are not allowed.

Additional properties are not allowed.

Additional properties are not allowed.

Response headers

X-RateLimit-Limitinteger

Maximum requests allowed in the current window.

minimum
0
maximum
9007199254740991
X-RateLimit-Remaininginteger

Requests remaining in the current window.

minimum
0
maximum
9007199254740991
X-RateLimit-Resetstring

ISO 8601 timestamp when the current rate-limit window resets.

format
date-time
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Was this helpful?
Suggest an edit