Skip to main content
POST
/
v1
/
files
Upload a file
curl --request POST \
  --url https://api.cula.tech/tracking/v1/v1/files \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form file='@example-file' \
  --form site=ste_01kqzcjrpyf27tge6smsbnhkh5 \
  --form external_id=GC-DOC-Q4-LCA-2025
{
  "id": "fil_01kqzcjrpyf27tgeaqk8twgw91",
  "external_id": "GC-DOC-Q4-LCA-2025",
  "file_name": "puro_LCA_RCCS_Q4.xlsm",
  "file_size_bytes": 2451230,
  "mime_type": "application/vnd.ms-excel.sheet.macroEnabled.12",
  "site": {
    "id": "ste_01kqzcjrpyf27tge6smsbnhkh5",
    "external_id": "GC-SITE-REFINERY"
  },
  "created_at": "2026-05-06T19:34:00Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.cula.tech/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key passed as a Bearer token. Keys are scoped to one organisation and a set of permitted sites. Two keys per scope (primary + secondary) are issued to support zero-downtime rotation.

Authorization: Bearer <api-key>

Body

multipart/form-data
file
file
required

The file to upload.

site
string
required

ID or ext-{externalId} of the site this file belongs to.

Example:

"ste_01kqzcjrpyf27tge6smsbnhkh5"

external_id
string

Partner-assigned identifier for the file.

Example:

"GC-DOC-Q4-LCA-2025"

Response

File uploaded.

id
string
required
Example:

"fil_01kqzcjrpyf27tgeaqk8twgw91"

file_name
string
required
Example:

"puro_LCA_RCCS_Q4.xlsm"

file_size_bytes
integer
required
Example:

2451230

mime_type
string
required
Example:

"application/vnd.ms-excel.sheet.macroEnabled.12"

site
object
required

The site this file belongs to.

created_at
string<date-time>
required
external_id
string | null
Example:

"GC-DOC-Q4-LCA-2025"