Skip to main content
POST
Create signed upload URL

Authorizations

Authorization
string
header
required

Behalf of an Operator (default). A JWT issued by Talqui Core when an operator signs in, scoped to every tenant that operator belongs to. Send as Authorization: Bearer <jwt-token>.

Path Parameters

tenantID
string<uuid>
required

The tenant the upload belongs to.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Body

application/json
fileContentType
string
required

MIME type; must be in the supported allowlist.

Minimum string length: 1
fileKind
enum<string>
required

Upload purpose; determines the storage key prefix, the size cap applied below AND whether the object is public. contact-import is stored privately — it is a customer list — and is referenced afterwards by storageKey, not by resourceUrl.

Available options:
operator-shortcut,
support-ticket-attachment,
contact-import
fileName
string
required

Original file name; slugified before composing the key.

Required string length: 1 - 255
fileSizeInBytes
integer
required

Declared file size in bytes; capped per fileKind (12 MB for shortcuts, 20 MB for ticket attachments, 50 MB for contact imports).

Required range: x <= 9007199254740991

Response

Response for status 200.

expiresIn
number
required

Seconds the pre-signed URL stays valid.

resourceUrl
string
required

Public URL the object is served from once the PUT completes. Does not resolve for a private upload.

storageKey
string
required

Storage key of the object. How a private upload (contact-import) is referenced afterwards.

uploadUrl
string
required

Pre-signed PUT target. Short-lived; never persist it.