Skip to main content
POST
/
api
/
data-platform
/
file-ingestions
Create a file ingestion record
curl --request POST \
  --url https://app.solya.app/api/data-platform/file-ingestions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "blobPath": "landing/org-uuid-1/2026-05-01/sales.csv",
  "checksumSha256": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
  "detectedMimeType": "text/csv",
  "fileSizeBytes": 1048576,
  "fileType": "csv",
  "organizationId": "org-uuid-1",
  "originalFilename": "sales_may_2026.csv",
  "sourceSystem": "POLARIS"
}
'
{
  "data": {
    "blobPath": "<string>",
    "channel": "<string>",
    "checksumSha256": "<string>",
    "createdAt": "2023-11-07T05:31:56Z",
    "fileSizeBytes": 0,
    "id": "<string>",
    "organizationId": "<string>",
    "originalFilename": "<string>",
    "detectedFileType": "<string>",
    "detectedMimeType": "<string>",
    "sourceSystem": "<string>",
    "updatedAt": "2023-11-07T05:31:56Z"
  }
}

Authorizations

Authorization
string
header
required

Static internal-ops token used by the data platform and internal cron jobs (e.g. zombie-run sweep). Validated via requireBearerToken inside the handler against a service-specific environment variable.

Body

application/json
blobPath
string
required

Path to the file in blob storage (max 1024 characters)

Required string length: 1 - 1024
checksumSha256
string
required

SHA-256 hex checksum of the file (exactly 64 characters)

Required string length: 64
fileSizeBytes
integer
required

Size of the file in bytes

Required range: 0 <= x <= 9007199254740991
fileType
enum<string>
required

Format of the file being ingested (csv, excel, json, parquet, etc.)

Available options:
csv,
tsv,
excel,
sql,
json,
xml,
parquet,
database_dump,
image,
other
organizationId
string
required

Organization that owns this file ingestion

Minimum string length: 1
originalFilename
string
required

Original filename as received from the source system (max 512 characters)

Required string length: 1 - 512
detectedFileType
string

File type detected during analysis, e.g. csv or xlsx (max 50 characters)

Maximum string length: 50
detectedMimeType
string

MIME type detected during file analysis (max 255 characters)

Maximum string length: 255
ingestionSource
enum<string>
default:client-importer

Channel that triggered the ingestion (CLIENT_IMPORTER, DATA_PLATFORM, etc.)

Available options:
app,
client-importer
sourceSystem
string

Source POS system identifier, e.g. polaris or kezia (max 255 characters)

Maximum string length: 255

Response

Successful response

data
object
required
success
enum<boolean>
required
Available options:
true