Skip to main content
Upload a CSV, Excel, JSON, or Parquet file and it instantly becomes a queryable dataset. No configuration, no schema definition — just drop the file and start asking questions.

Via the UI

Drag a data file into the chat or use the upload button. Zark detects the file type, processes it, and confirms when it’s ready:
  1. Drop a file into the chat
  2. Wait for processing (usually seconds)
  3. Ask a question about the data
What's the average order value by region?

Via the API

Upload a data file, then reference it in a chat request:
import requests

# Step 1: Upload the file
with open("sales_data.csv", "rb") as f:
    upload_response = requests.post(
        "https://api.zarkai.xyz/v1/storage/files",
        headers={"x-api-key": "your_api_key"},
        files={"file": ("sales_data.csv", f, "text/csv")},
    )

file_id = upload_response.json()["fileId"]

# Step 2: Query it
response = requests.post(
    "https://api.zarkai.xyz/v1/chat",
    headers={
        "x-api-key": "your_api_key",
        "Content-Type": "application/json",
    },
    json={
        "messages": [
            {"role": "user", "content": "What's the total revenue by product category?"}
        ],
        "workspace_id": "wks-xxxxx",
        "file_ids": [file_id],
        "tools": ["database"],
        "tool_choice": "auto",
    },
)

print(response.json()["response"])

Multiple Data Files

Upload multiple related files and query across them:
{
  "messages": [
    {"role": "user", "content": "Compare Q3 actuals to the Q3 forecast"}
  ],
  "workspace_id": "wks-xxxxx",
  "file_ids": ["file-actuals-123", "file-forecast-456"],
  "tools": ["database"],
  "tool_choice": "auto"
}
Zark creates separate tables for each file and can join or compare them based on your question.

Data Tables in Your Space

Once processed, data files become tables in your Space. These tables persist across conversations — you can query the same dataset in different chat sessions without re-uploading. Tables created from uploads are accessible to all tools:

Processing Status

Large data files show processing status during upload. You can check status via chat:
Is my file done processing?
Show me the schema for the uploaded data
Once processing is complete, the full dataset is queryable.