Document API: Upload beta
The upload
document API endpoint allows you to upload documents to a memory in Langbase with API. This endpoint requires a User or Org API key.
This endpoint can also be used to replace an existing document in a memory. To do this, you need to provide the same fileName
and memoryName
attributes as the existing document. We also have a separate guide on how to replace an existing document in memory.
Generate a User/Org API key
You will need to generate an API key to authenticate your requests. For more information, visit the User/Org API key documentation.
Step #1Get SignedUrl to Upload Document for org
Uploading a document to a memory requires a signed URL. POST
a request to this endpoint to get a signed URL and use PUT
method to upload the document.
Required headers
- Name
Content-Type
- Type
- string
- Description
Request content type. Needs to be
application/json
.
- Name
Authorization
- Type
- string
- Description
Replace
<ORG_API_KEY>
with your organization API key.
Required path parameters
- Name
org
- Type
- string
- Description
The organization username.
Replace
{org}
with the organization username.
Required attributes
- Name
memoryName
- Type
- string
- Description
Name of the memory to which the document will be uploaded.
- Name
ownerLogin
- Type
- string
- Description
It is the username of the org. It is returned in Memory List endpoint as well as
owner_login
.
- Name
fileName
- Type
- string
- Description
Name of the document.
Once you have the signed URL, you can upload the document using the PUT method.
Step #2Upload Document on SignedUrl
Use the signed URL to upload the document to the memory. The signed URL is valid for 2 hours.
Required headers
- Name
Content-Type
- Type
- string
- Description
Request content type. Needs to be the MIME type of the document. Currently, we support
application/pdf
,text/plain
,text/markdown
,text/csv
, and all major code files astext/plain
. For csv, pdf, text, and markdown files, it should correspond to the file type used in thefileName
attribute in step 1. For code files, it should betext/plain
.
Required attributes
- Name
body
- Type
- FileBody
- Description
The body of the file to be stored in the bucket. It can be
Buffer
,File
,FormData
, orReadableStream
type.
curl https://api.langbase.com/beta/org/{org}/memorysets/documents \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <ORG_API_KEY>" \
-d '{
"memoryName": "rag-memory",
"ownerLogin": "langbase",
"fileName": "file.pdf"
}'
Response
{
"signedUrl": "https://b.langbase.com/..."
}
curl -X PUT \
-H 'Content-Type: application/pdf' \
--data-binary "@path/to/pdfFile" \
"{SignedUrl}"
Response
{
// ...
"status": 200,
"statusText": 'OK',
// ...
}
Step #1Get SignedUrl to Upload Document for user
Uploading a document to a memory requires a signed URL. POST
a request to this endpoint to get a signed URL and use PUT
method to upload the document.
Required headers
- Name
Content-Type
- Type
- string
- Description
Request content type. Needs to be
application/json
.
- Name
Authorization
- Type
- string
- Description
Replace
USER_API_KEY
with your User API key.
Required attributes
- Name
memoryName
- Type
- string
- Description
Name of the memory to which the document will be uploaded.
- Name
ownerLogin
- Type
- string
- Description
It is the username of the org/user. It is returned in Memory List endpoint as well as
owner_login
.
- Name
fileName
- Type
- string
- Description
Name of the document.
Once you have the signed URL, you can upload the document using the PUT method.
Step #2Upload Document on SignedUrl
Use the signed URL to upload the document to the memory. The signed URL is valid for 2 hours.
Required headers
- Name
Content-Type
- Type
- string
- Description
Request content type. Needs to be the MIME type of the document. Currently, we support
application/pdf
,text/plain
,text/markdown
,text/csv
, and all major code files astext/plain
. For csv, pdf, text, and markdown files, it should correspond to the file type used in thefileName
attribute in step 1. For code files, it should betext/plain
.
Required attributes
- Name
body
- Type
- FileBody
- Description
The body of the file to be stored in the bucket. It can be
Buffer
,File
,FormData
, orReadableStream
type.
curl https://api.langbase.com/beta/user/memorysets/documents \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer <USER_API_KEY>" \
-d '{
"memoryName": "rag-memory",
"ownerLogin": "langbase",
"fileName": "file.pdf"
}'
Response
{
"signedUrl": "https://b.langbase.com/..."
}
curl -X PUT \
-H 'Content-Type: application/pdf' \
--data-binary "@path/to/pdfFile" \
"{SignedUrl}"
Response
{
// ...
"status": 200,
"statusText": 'OK',
// ...
}