Skip to main content

POST /resources/wrappers/files/upload

Upload a CSV, XLSX, or XLS file to the Resource Service for wrapper generation. The service validates the file format and content, returning a unique file ID that can be used in subsequent wrapper generation requests.

Authentication

No authentication required.

Request

Headers

Content-Type
string
required
Must be multipart/form-data

Body Parameters

file
file
required
The file to upload. Must be one of:
  • CSV file (.csv)
  • Excel file (.xlsx, .xls)
Maximum file size: 50 MBContent validation:
  • File must not be empty
  • File must have at least 2 columns for time series data

Response

file_id
string
required
Unique identifier for the uploaded file. Use this ID when generating wrappers.
filename
string
required
Original filename as provided during upload.
file_size
integer
required
File size in bytes.
preview_data
string
Sample of the file content (first 5 rows) for preview purposes.
validation_status
string
required
File validation status. Possible values:
  • valid - File passed all validation checks
  • invalid - File failed validation
  • pending - Validation in progress
validation_errors
array
List of validation error messages if the file is invalid. Only present when validation_status is invalid.
item
string
Error message describing the validation failure.
message
string
required
Human-readable message describing the upload result.

Example Request

curl -X POST https://api.example.com/resources/wrappers/files/upload \
  -H "Content-Type: multipart/form-data" \
  -F "file=@/path/to/your/data.csv"

Example Response

Success (Valid File)

{
  "file_id": "a1b2c3d4-5e6f-7g8h-9i0j-k1l2m3n4o5p6",
  "filename": "sales_data.csv",
  "file_size": 245760,
  "preview_data": "timestamp          value\n2024-01-01 00:00:00  100.5\n2024-01-01 01:00:00  102.3\n2024-01-01 02:00:00  98.7\n2024-01-01 03:00:00  105.2\n2024-01-01 04:00:00  99.8",
  "validation_status": "valid",
  "validation_errors": null,
  "message": "File uploaded successfully"
}

Success (Invalid File)

{
  "file_id": "b2c3d4e5-6f7g-8h9i-0j1k-l2m3n4o5p6q7",
  "filename": "empty_file.csv",
  "file_size": 128,
  "preview_data": null,
  "validation_status": "invalid",
  "validation_errors": [
    "File is empty",
    "File must have at least 2 columns for time series data"
  ],
  "message": "File uploaded but has validation errors"
}

Error Responses

400 Bad Request

No file provided:
{
  "detail": "No file provided"
}
Unsupported file type:
{
  "detail": "File type not supported. Allowed: .csv, .xlsx, .xls"
}
File too large:
{
  "detail": "File too large. Maximum size: 50.0MB"
}

500 Internal Server Error

Upload failed:
{
  "detail": "Upload failed: <error message>"
}
File processing error:
{
  "detail": "File upload failed: <error message>"
}

Build docs developers (and LLMs) love