Skip to main content
POST
/
api
/
data-platform
/
sandbox-ingest-runs
Create a sandbox ingest run
curl --request POST \
  --url https://app.solya.app/api/data-platform/sandbox-ingest-runs \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "blobPath": "uploads/org-uuid-1234/2026-05-23/sales_export.csv",
  "checksumSha256": "a3f5b2c1d4e6f7890123456789abcdef0123456789abcdef0123456789abcdef",
  "dataSourceCode": "POLARIS",
  "fileSizeBytes": 204800,
  "organizationId": "org-uuid-1234",
  "originalFilename": "sales_export.csv",
  "triggerType": "API"
}
'
{
  "id": "run-uuid-si-7f3a2b",
  "status": "PENDING",
  "triggeredAt": "2026-05-23T09:00:00.000Z"
}

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 uploaded file blob in storage

Minimum string length: 1
checksumSha256
string
required

Lowercase hex SHA-256 digest of the file content

Pattern: ^[0-9a-f]{64}$
fileSizeBytes
integer
required

Size of the uploaded file in bytes

Required range: 0 <= x <= 9007199254740991
organizationId
string
required

Organization UUID that owns this run

Minimum string length: 1
originalFilename
string
required

Original filename as submitted by the user or caller

Minimum string length: 1
triggerType
enum<string>
required

What initiated the run: MANUAL (user) or API (external caller)

Available options:
MANUAL,
API
dataSourceCode
string

Data source identifier that determines which ingestion spec to use; omit to auto-detect

forceSpecId
string

Force a specific ingestion spec UUID instead of auto-detecting from the file

Response

Successful response

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