Answers/Can I create a dashboard without a form?

Can I create a dashboard without a form?

Updated March 2026

Yes. Two options depending on how much data you have.

Inline JSON data: pass a data array directly in the POST /api/dashboards request. Up to 1,000 rows, 1MB total. Good for small datasets that an agent constructs on the fly or that you generate from a script. No upload step -- the data goes in the request body alongside the DSL.

CSV upload: for larger datasets up to 100,000 rows and 10MB. Three-step flow: presign the upload, PUT the file, create the dashboard with the csvObjectId. Good for spreadsheet exports, database dumps, or any file you already have.

When to use which? Inline for data the agent or script already has in memory. A few hundred rows of metrics, a summary table, test results. CSV for anything exported from another tool -- Google Sheets, Excel, a database query, a pandas DataFrame saved to disk.

Both produce static dashboards. The data is fixed at creation time. No auto-refresh, no live updates. If the underlying data changes, create a new dashboard. Form-based dashboards are different -- they auto-refresh every 30 seconds as new submissions arrive.

The DSL is identical regardless of data source. Same seven widget types, same groupBy syntax, same aggregation options (count, sum, avg, min, max), same public URL at sutrena.com/d/{id}. The only difference is where the data comes from.

For inline data, type detection works on the values you provide. Numbers stay numeric. Strings become categorical. Date strings in ISO format or common date formats are detected as temporal, so $column:day grouping works.

# Create a dashboard with inline JSON data (no form, no CSV)
curl -X POST https://sutrena.com/api/dashboards \
  -H "Authorization: Bearer st_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Q1 Sales Summary",
    "isPublic": true,
    "data": [
      { "month": "January", "region": "North", "revenue": 42000 },
      { "month": "January", "region": "South", "revenue": 38000 },
      { "month": "February", "region": "North", "revenue": 45000 },
      { "month": "February", "region": "South", "revenue": 41000 },
      { "month": "March", "region": "North", "revenue": 48000 },
      { "month": "March", "region": "South", "revenue": 44000 }
    ],
    "dsl": {
      "version": 1,
      "widgets": [
        { "type": "metric_card", "title": "Total Entries", "value": "count(*)" },
        { "type": "metric_card", "title": "Total Revenue", "value": "sum(revenue)" },
        { "type": "bar_chart", "title": "Revenue by Region", "groupBy": "region", "aggregate": "sum(revenue)" },
        { "type": "bar_chart", "title": "By Month", "groupBy": "month" },
        { "type": "data_table", "title": "All Data", "columns": ["month", "region", "revenue"] }
      ]
    }
  }'

Ready to build?

Get a trial API key instantly — no signup required.

Can I create a dashboard without a form? — Sutrena | Sutrena