BI feeds and exports
Read-only feeds for Power BI, Tableau and Looker Studio, plus SPSS, Word and print exports.
Create a feed
Create a token for one form in Results, Tools, BI feed, or call POST /api/v1/forms/{id}/feed-tokens (SDK insights.feeds.create, MCP bi_feed). The token and its three URLs are returned once; only a hash is stored. Revoke a token at any time. Sensitive questions are never included, and protected-data workspaces are refused.
| URL | Use |
|---|---|
/api/feed/<token>/odata | OData v4 service root (JSON). Entity set Responses, with $top and $skip. Metadata at /odata/$metadata. |
/api/feed/<token>/csv | CSV with a header row, newest first. Query: top, skip, since (epoch ms). |
/api/feed/<token>/json | JSON with columns and rows keyed by question id. |
Power BI
Get data, OData feed, paste the OData URL, choose Anonymous (the token in the path is the credential). Pick Responses and load. Scheduled refresh in the Power BI service works with the same URL.
Tableau
Connect, To a server, OData, paste the OData URL. For a CSV extract use the Web Data Connector or download the CSV URL on a schedule.
Looker Studio
Use a community connector for JSON or CSV URLs (for example a Google Sheets IMPORTDATA bridge: =IMPORTDATA("<csv url>")) and connect Looker Studio to the sheet.
Other exports
const f = await ff.insights.report(formId, "spss"); // zip: data.csv + import.sps
const w = await ff.insights.report(formId, "docx"); // base64 Word summary
const p = await ff.insights.report(formId, "print"); // print-ready HTML of every responseThe SPSS zip holds data.csv and import.sps; open the .sps in SPSS with both files in the same folder. There is no binary .sav or PowerPoint writer; the HTML and Word summaries cover reporting.