"Low-code" tools let you pull Tracksuit data into a workflow without writing a full application. They all work the same way under the hood: they make an HTTP request and read back the JSON.
The Tracksuit API is a standard, read-only REST API, so every one of these tools can talk to it using its generic HTTP request (or "API call" / "custom connector") block. This guide shows you the handful of settings each tool needs, then gives a starting recipe for the most common platforms.
Example tools: Zapier, Make, n8n, Microsoft Power Automate, Retool, Google Sheets, Airtable
👉 Try it in the browser first. Our interactive API documentation lets you paste in your key and run live requests against every endpoint. Get a request working there first, then copy the URL, headers and parameters straight into your low-code tool.
The four things every connector needs
Whatever the tool calls its HTTP block, you only ever configure four things. Get these right and the connection works.
Setting | Value |
Method |
|
Base URL |
|
Auth header | Header |
Response format | JSON. Set |
The key goes in a header, not the URL. Generate it in the Tracksuit dashboard under Account Settings → Tokens, then store it in your tool's credential/secret manager (Zapier "Auth", Make "Connection", n8n "Credential"). Never paste the raw key into a step that logs or shares its URL. See How to authenticate the Tracksuit API.
A first request, in plain HTTP
This is what every tool is doing for you. If you can read this curl call, you can fill in any low-code HTTP block:
curl -G <https://prod.beta.api.gotracksuit.com/v2/category-views> \ -H "Authorization: Bearer YOUR_API_KEY" \ --data-urlencode "page_size=100"
The response is JSON with an items array and a next_token:
{ "items": [ ... ], "next_token": null }Start with GET /category-views : it lists the category views your key can access and gives you the id you'll feed into every other endpoint (funnel, statements, profile, and so on).
Tool-by-tool starting points
The block you reach for differs per tool, but the four settings above are always what you fill in.
Tool | Use this block | Where the key goes |
Zapier | Webhooks by Zapier → Custom Request (GET), or a Code step for paginated pulls. | Add an |
Make (Integromat) | HTTP → Make a request module. Set method | Use Header auth or add an |
n8n | HTTP Request node. Set Authentication → Generic → Header Auth. | Create a Header Auth credential: name |
Power Automate | HTTP action (premium), or HTTP with Azure AD if proxied. | Add a header row: key |
Retool | A REST API resource with base URL set, then a query per endpoint. | Add |
Google Sheets | Apps Script | Pass |
A minimal Apps Script pull for Google Sheets, as a concrete example:
function tracksuitGet(path, params) { const key = PropertiesService.getScriptProperties().getProperty("TRACKSUIT_KEY"); const url = "<https://prod.beta.api.gotracksuit.com/v2>" + path + "?" + params; const res = UrlFetchApp.fetch(url, { headers: { Authorization: "Bearer " + key }, muteHttpExceptions: true, }); return JSON.parse(res.getContentText()); }This reads your key from a Script Property named TRACKSUIT_KEY rather than hard-coding it. Set it once via Extensions → Apps Script → Project Settings → Script Properties (add a property TRACKSUIT_KEY with your token as the value). Keeping it there means the token never appears in the sheet, the formulas, or your version history.
Calling it. tracksuitGet takes an endpoint path and a query string and returns the parsed JSON. Call it from another function and write the result into the sheet:
function loadCategoryViews() { const data = tracksuitGet("/category-views", "page_size=100"); const rows = data.items.map(v => [v.id, v.name]); SpreadsheetApp.getActiveSheet().getRange(2, 1, rows.length, 2).setValues(rows); } // A metric pull for one category view: // tracksuitGet("/category-views/12345/funnel", "start_period=2025-01-01&end_period=2025-06-01");Run it from the Apps Script editor (Run button), a custom menu (onOpen + addMenu), or a time-based trigger. Note: because it uses UrlFetchApp, it can't be called as a =tracksuitGet(...) formula in a cell — Sheets custom functions aren't allowed to make external requests. Drive it from a menu or trigger instead.
Passing query parameters
Most endpoints take query parameters (date range, brands, metrics, filters). Two formatting rules trip people up in low-code tools, where you often type the query string by hand:
List values go in one JSON array. Params like brand_ids, metrics and channels take several values, and the API reads them as a single query parameter holding a JSON array, URL-encoded. Two brands look like ?brand_ids=["10296","10311"]. Drop the raw ["10296","10311"] into your tool's query-param field and let it handle the encoding. One param, one JSON array, and you're set.
Dates must be the first of the month at midnight. start_period and end_period are ISO-8601 and must land on the first day of a month, e.g. 2025-06-01. Anything else is rejected with a validation error.
filters is a JSON array too. To slice by demographic, pass filters as a JSON array. Each entry is either a "Name:Value" string or a {"name": ..., "value": ...} object, whichever your tool makes easier: ["Age:18 to 24 years","Gender:Female"]. Pull the valid names and values from GET /category-views/{id} (Get Metadata). See full detail, including every dimension you can filter on, in How to filter by demographics.
Handling pagination in a workflow
List and metric endpoints return data in pages. You make a call, read items, and if next_token is not null you call again with that token until it is. Single-brand pulls often fit in one page, so you may never see a token but build the loop anyway.
Tools with built-in cursor pagination (Make, n8n, Retool): point the "next page" setting at the response's
next_tokenfield and the "cursor parameter" at thenext_tokenquery param. Stop condition:next_tokenis empty/null.Tools without looping (most Zapier triggers): use a Code step, or accept the first page only when you know the result set is small (single brand, single metric).
Keep every other parameter identical across pages. A cursor is tied to the exact request that produced it, and tokens expire after 30 minutes. Full pattern in How to handle pagination.
Respect the rate limit
The API allows a steady 5 requests per second with a short burst up to 10, per user (each API key gets its own budget). Low-code schedulers and "loop over rows" steps can fire much faster than that and trip a 429 Too Many Requests.
Keep it gentle. Set your HTTP block's concurrency/parallelism to 1, add a small delay between iterations, and enable the tool's retry on error with exponential backoff. Treat 429 and 5xx as retryable; back off and try again rather than hammering. See How to handle API errors.
Common pitfalls
Trying to write data. The API is read-only. There are no create/update endpoints — low-code "actions" that push data back to Tracksuit don't exist. Use it as a source, not a destination.
Formatting multi-value params. When a param takes several values — brand_ids, metrics, channels — put them all in one JSON array: brand_ids=["10296","10311"] (see above).
Pasting the key into a URL or a shared step. Keep it in the tool's secret/credential store and reference it. Anyone who can see the scenario can see hard-coded values.
Mid-month dates. 2025-06-15 fails. Round to the first of the month.
