Forma Visuals · Chart your data · For analysts

Your table in. Your chart out.

You have the table and a meeting in an hour. Paste it in and say the chart you need. Over the API and MCP, by default, Forma refuses a chart whose data holds a number you did not give it.

Try an example in the console

The playground allows illustrative values: any number your request does not give, Forma writes, and the answer says generated. Over the API and MCP, that request is refused unless it sets allow_generated_data.

01 Real answers

Make a chart from a table, a CSV or Excel data.

Line chart of monthly active users through 2025, in thousands
chart · chartjs

“A line chart of monthly active users in 2025, months Jan to Dec in calendar order on x (not alphabetical), users in thousands on y: 12.4, 13.1, 14.8, 15.2, 16.9, 18.3, 17.6, 18.9, 21.2, 22.8, 24.1, 26.5. Title: Monthly active users, 2025.”

valid · chart@6baf09f0

Try these with their values filled in:

The playground allows illustrative values: any number your request does not give, Forma writes, and the answer says generated. Over the API and MCP, that request is refused unless it sets allow_generated_data.

02 How it fits

Into the work you already do.

Where you already work

Ask in Claude, ChatGPT, Cursor, VS Code, Windsurf or Codex over MCP, from a script over HTTP, or try a request in the console.

Works with the chart tools your team uses

Vega-Lite, Plotly, ECharts, Chart.js or gnuplot: say which, and the answer is code you can paste into a notebook, a dashboard or a report.

03 What you still check

What a verdict does not tell you.

  • Numbers the chart computes from yours, such as totals, averages or a calculated field, are not compared, and neither are row numbers that only count the rows.
  • Labels and dates are not compared with your request, and the check does not confirm that every row is drawn or sits in the right place. Read the chart before you publish it.
  • The check covers form, not intent: a valid chart of the wrong column is still valid.

04 Questions

Before you start.

Can I paste from Excel?

Yes. Copy the cells and paste them into the request as text. The whole request, table and words together, can be up to 4,000 characters.

What if I leave a number out?

If the request gives no values at all, the API refuses it with DATA_REQUIRED and does not bill it. If it gives some and leaves one out, the chart may come back without that row, which the check does not catch, so check every row is there; if Forma filled the gap in with a number your request does not state, the API refuses it with DATA_REQUIRED and does not bill it.

Does it change my numbers?

Over the API and MCP, by default, a chart whose data holds a number your request does not state is refused. The check does not confirm each value sits on the right row, and numbers the chart computes, such as totals, are not compared, so read the chart once before you use it.