Skip to main content

How to connect the API with low-code tools

A guide to pulling Tracksuit data into tools like Zapier, Make and Google Sheets.

"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

GET : every Tracksuit endpoint is read-only. You never POST, PUT or DELETE.

Base URL

https://prod.beta.api.gotracksuit.com/v2 followed by the endpoint path, e.g. /category-views.

Auth header

Header Authorization with value Bearer YOUR_API_KEY.

Response format

JSON. Set Accept: application/json if the tool asks; most default to it.

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 Authorization header Bearer YOUR_API_KEY in the request's Headers section.

Make (Integromat)

HTTP → Make a request module. Set method GET, add the URL and a query string.

Use Header auth or add an Authorization header manually.

n8n

HTTP Request node. Set Authentication → Generic → Header Auth.

Create a Header Auth credential: name Authorization, value Bearer YOUR_API_KEY.

Power Automate

HTTP action (premium), or HTTP with Azure AD if proxied.

Add a header row: key Authorization, value Bearer YOUR_API_KEY.

Retool

A REST API resource with base URL set, then a query per endpoint.

Add Authorization: Bearer YOUR_API_KEY to the resource's default headers.

Google Sheets

Apps Script UrlFetchApp.fetch(), surfaced as a custom function or menu action.

Pass { headers: { Authorization: "Bearer " + key } }; keep the key in Script Properties.

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_token field and the "cursor parameter" at the next_token query param. Stop condition: next_token is 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.

Did this answer your question?