DataFast Analytics Skill
Use this skill to call the DataFast API and summarize results for the user.
Quick Workflow
- Confirm the request type (overview, timeseries, realtime, breakdown, visitor, goals/payments create/delete).
- Gather required inputs:
- Date range:
startAtandendAttogether or neither (overview/timeseries support ranges). timezone,fields,interval,limit,offset, and anyfilter_*parameters.
- Date range:
- Build the HTTP request with
Authorization: Bearer $DATAFAST_API_KEYandContent-Type: application/json. - Execute with
curland parse JSON. - Summarize results in a table plus a short narrative (totals + key takeaways). Include pagination info if relevant.
Setup
- Get your API key from DataFast (starts with
df_). - Store it:
mkdir -p ~/.config/datafast
echo "df_your_key_here" > ~/.config/datafast/api_key
Authentication
All requests need:
DATAFAST_API_KEY=$(cat ~/.config/datafast/api_key)
curl ... \
-H "Authorization: Bearer $DATAFAST_API_KEY" \
-H "Content-Type: application/json"
If the user hasn't set up the API key, ask them to follow the setup steps above.
Base URL
https://datafa.st/api/v1/
Reference Docs
Use the full API reference at {baseDir}/references/datafast-api-docs.md for endpoint details, response fields, and examples.
Endpoint Guidance
Overview
GET /analytics/overview- Optional:
startAt,endAt,timezone,fields.
Time Series
GET /analytics/timeseries- Typical params:
fields,interval(hour/day/week/month),startAt,endAt,timezone,limit,offset. - Accepts
filter_*query params for segmentation. - Note:
fieldsis required (e.g.,fields=visitors,sessions).
Realtime
GET /analytics/realtimeGET /analytics/realtime/map
Breakdowns
GET /analytics/devicesGET /analytics/pagesGET /analytics/campaignsGET /analytics/goalsGET /analytics/referrersGET /analytics/countriesGET /analytics/regionsGET /analytics/citiesGET /analytics/browsersGET /analytics/operating-systemsGET /analytics/hostnames
Visitor Details
GET /visitors/{datafast_visitor_id}
Goals
- Create goal:
POST /goals - Delete goals:
DELETE /goals(requires at least one filter or time range; confirm scope)
Payments
- Create payment:
POST /payments - Delete payments:
DELETE /payments(confirm scope)
Destructive Actions
For DELETE /goals or DELETE /payments:
- Always confirm exact filters and time range in plain English before executing.
- If user asks for "all time" deletion, ask for explicit confirmation.
- Echo the final URL that will be called (without the API key).
Filter Syntax
Use filter_* params for segmentation (e.g., filter_referrer=is:X).
Important: Filter values must match the exact names from breakdown endpoints. For example, X/Twitter is stored as "X" (not "x.com" or "twitter.com"). When in doubt, query the breakdown first:
curl ... "/analytics/referrers?limit=20"
Then use the exact referrer value in your filter.
Example Command Patterns
GET
DATAFAST_API_KEY=$(cat ~/.config/datafast/api_key)
curl -sS "https://datafa.st/api/v1/analytics/overview?startAt=2024-01-01&endAt=2024-01-31&timezone=UTC" \
-H "Authorization: Bearer $DATAFAST_API_KEY" \
-H "Content-Type: application/json"
POST
DATAFAST_API_KEY=$(cat ~/.config/datafast/api_key)
curl -sS "https://datafa.st/api/v1/goals" \
-H "Authorization: Bearer $DATAFAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"datafast_visitor_id":"...","name":"newsletter_signup","metadata":{"email":"..."}}'
DELETE
DATAFAST_API_KEY=$(cat ~/.config/datafast/api_key)
curl -sS -X DELETE "https://datafa.st/api/v1/goals?name=signup&startAt=2023-01-01T00:00:00Z&endAt=2023-01-31T23:59:59Z" \
-H "Authorization: Bearer $DATAFAST_API_KEY"
Output Expectations
- Provide a short summary and a flat table of results.
- Include totals and conversion/revenue metrics when present.
- For time series, include the top-level totals and the first/last timestamps in the selected range.
- If pagination exists, report
limit,offset, andtotal, and ask if the user wants the next page.