Docs menu
Sending data in
Five ways to get data into Summarix. Pick based on where the data lives and who sends it.
| Method | Best for | Auth |
|---|---|---|
| REST API | Your servers, ETL jobs, nightly exports | Secret key |
| Public-key ingest | Websites, mobile apps, kiosks: events and form submissions | Public key |
| Push URL | Zapier, Make, n8n, Power Automate, or any tool that can send an HTTP POST | URL token |
| App integrations | Stripe, Shopify, HubSpot, Google Sheets and more, pulled on a schedule | The app's own key |
| Database connections | SQL Server, PostgreSQL, MySQL | Read-only DB login |
REST API #
Create a dataset from JSON rows (up to 5,000 per request) or upload a CSV/Excel file (up to 25 MB). Nested objects are flattened into columns such as customer.name.
curl https://api.summarix.co.za/v1/datasets \
-H "Authorization: Bearer $SUMMARIX_SECRET_KEY" \
-F name="Debtors ageing" -F [email protected]Public-key ingest #
Collect rows straight from client code. Rows are added to the key's own dataset, and each request can carry 1 to 500 rows.
<script>
function summarix(row) {
fetch("https://api.summarix.co.za/v1/ingest", {
method: "POST",
headers: { "X-Summarix-Key": "smx_pk_live_…", "Content-Type": "application/json" },
body: JSON.stringify({ ...row, page: location.pathname, at: new Date().toISOString() }),
keepalive: true,
});
}
document.querySelector("#quote-form").addEventListener("submit", (e) => {
summarix({ event: "quote_requested", product: e.target.product.value });
});
</script>Push URL (automation tools) #
In Integrations → Add a source → Zapier · Make · n8n · Power Automate, you get a private URL likehttps://api.summarix.co.za/integrations/push/ipt_…. Anyone with the URL can send rows, so treat it like a password. You can generate a new URL at any time.
| Body | Effect |
|---|---|
{"invoice":"INV-1","amount":950} | Append one row |
[{…},{…}] | Append many rows (up to 10,000 per request) |
{"rows":[…],"mode":"replace"} | Replace the whole dataset. Use this for daily full exports |
Zapier
Add an action Webhooks by Zapier → POST, set Payload Type to JSON, paste the push URL, and map fields as data. Every trigger (a new Xero invoice, a Salesforce deal, a Typeform response…) becomes a row.
Make
Add an HTTP → Make a request module: method POST, the push URL, body type Raw, content type JSON, and your row as the request content.
n8n
Use an HTTP Request node: POST to the push URL, send body as JSON. To send many items in one call, aggregate them first and send {"rows": {{$json.items}}}.
Power Automate
Add an HTTP action: method POST, the push URL, header Content-Type: application/json, and the body from dynamic content. It works well with Dynamics 365, SharePoint lists and Excel Online triggers.
App integrations #
Built-in connectors pull data hourly, daily or weekly into a dataset that refreshes in place. Scheduled reports always use the latest data. Available: Google Sheets, CSV/Excel URLs, any REST/JSON API, Stripe, Shopify, WooCommerce, HubSpot, Pipedrive, Airtable, Notion, monday.com, Jira, Zendesk, Freshdesk, Mailchimp and GitHub. Each sync imports up to 200,000 rows.
Database connections #
In Dashboard → Data, connect SQL Server, PostgreSQL or MySQL with a read-only login. Queries must be a single SELECT. They run in a read-only transaction that is always rolled back, with a 10-second timeout and a 5,000-row cap. Only publicly reachable hosts are allowed. Ask us about an allowlist for private networks.