For the complete documentation index, see llms.txt. This page is also available as Markdown.

S3

GET S3 Presigned POST

get

Generate a presigned POST for uploading files directly to S3.

Upload Flow:

  1. Call this endpoint to get presigned POST URL and fields

  2. POST the file to S3 using the returned URL and fields (include file as last field)

  3. Call /api/s3/success with the key, uuid, name, and etag to confirm upload

Expiration: 5 minutes

Authorizations
X-API-KEYstringRequired
X-BUSINESS-IDstringRequired
X-USER-IDstringRequired
Query parameters
contenttypestringRequired

MIME type of the file. Examples: application/pdf, text/plain, image/png, application/json

filenamestringRequired

Name of the file to upload (e.g., 'updated-resume.pdf')

sourcestringRequired

Allowed values: field_value, form_field_value, activity_field_value, automation_value, employee_import, record_import, meta_import, smart_connector_import, knowledge_source, public_image, third_party_image

Responses
200Success
application/json
urlstring · uriRequired

POST destination URL for upload

s3object_idstring · uuidRequired

UUID to use when calling /api/s3/success

max_file_sizeintegerRequired

Maximum allowed file size in bytes

expires_atstring · date-timeRequired

When the presigned POST expires

get/api/s3/presigned-post
GET /api/s3/presigned-post?contenttype=text&filename=text&source=text HTTP/1.1
X-API-KEY: YOUR_API_KEY
X-BUSINESS-ID: YOUR_BUSINESS_ID
X-USER-ID: YOUR_USER_ID
Accept: */*
{
  "url": "https://kizen-file-uploads.s3.amazonaws.com/",
  "fields": {
    "key": "a1b2c3d4-e5f6-7890-abcd-ef1234567890/presigned_upload/f9e8d7c6-b5a4-3210-fedc-ba0987654321",
    "Content-Type": "application/pdf",
    "acl": "private",
    "tagging": "<Tagging><TagSet><Tag><Key>kzn-business-id</Key><Value>a1b2c3d4-e5f6-7890-abcd-ef1234567890</Value></Tag><Tag><Key>kzn-source</Key><Value>field_value</Value></Tag></TagSet></Tagging>",
    "policy": "eyJleHBpcmF0aW9uIjogIjIwMjUtMDEtMThUMTI6MDU6MDBaIiwgImNvbmRpdGlvbnMiOiBbLi4uXX0=",
    "x-amz-algorithm": "AWS4-HMAC-SHA256",
    "x-amz-credential": "AKIAIOSFODNN7EXAMPLE/20250118/us-east-1/s3/aws4_request",
    "x-amz-date": "20250118T120000Z",
    "x-amz-signature": "bWq2s1WEIj+Ydj0vQ697zp+IXMU="
  },
  "s3object_id": "f9e8d7c6-b5a4-3210-fedc-ba0987654321",
  "max_file_size": 15000000,
  "expires_at": "2025-01-18T12:05:00Z"
}

POST S3 File upload success

post

This is where the upload will send a POST request after the file has been stored in S3.

Authorizations
X-API-KEYstringRequired
X-BUSINESS-IDstringRequired
X-USER-IDstringRequired
Query parameters
sourcestringOptional

Kind of the file (e.g. 'SMART_CONNECTOR_IMPORT')

Body
uuidstringOptional

S3 object UUID

keystringOptional

S3 object key

namestringOptional

File name

is_publicbooleanOptional

Whether the S3 object is public (default: false)

etagstringOptional

S3 object Entity Tag (ETag)

business_idstringOptional

ID of the business associated with the S3 object

Responses
200Success
application/json
idstring · uuidRead-onlyRequired
createdstring · date-timeRead-onlyRequired
keystringRequired
namestring · nullableOptional
urlstring · uriRequired
thumbnail_urlstring · uriRequired
size_bytesinteger · int64 · max: 9223372036854776000Optional
size_formattedstringRead-onlyRequired
content_typestring · nullableOptional
is_publicbooleanOptional
common_keystring · nullableRead-onlyRequired
is_commonbooleanRead-onlyRequired
metadataanyOptional
post/api/s3/success
POST /api/s3/success HTTP/1.1
X-API-KEY: YOUR_API_KEY
X-BUSINESS-ID: YOUR_BUSINESS_ID
X-USER-ID: YOUR_USER_ID
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 94

"uuid='text'&key='text'&name='text'&is_public=true&etag='text'&business_id='text'"
200Success
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "created": "2026-01-01T00:00:00.000Z",
  "key": "text",
  "name": "text",
  "url": "https://example.com",
  "thumbnail_url": "https://example.com",
  "size_bytes": 1,
  "size_formatted": "text",
  "content_type": "text",
  "is_public": true,
  "common_key": "text",
  "is_common": true,
  "metadata": null,
  "employee": {
    "ANY_ADDITIONAL_PROPERTY": "anything"
  }
}

Last updated

Was this helpful?