Skip to content
noBSredir

Analytics & stats

All stats endpoints require viewer+ role, are scoped to a workspace, and require a Pro or Agency plan. Free plan workspaces receive a 402 error.

Filtering

All stats endpoints accept optional query parameters to filter results:

ParamTypeDefaultDescription
linkstring-Filter by link ID
countrystring-Filter by country code
browserstring-Filter by browser name
osstring-Filter by operating system
devicestring-Filter by device type
refererstring-Filter by referrer
surveyedstring-Filter by survey response status. Use 1 to show only clicks where the visitor answered a micro-survey.
survey_optionstring-Filter by survey answer option index (0, 1, 2, 3). Combine with link to analyze a specific survey’s answer distribution.
include_botsbooleanfalseInclude bot/crawler traffic in results

By default, bot traffic is excluded from all stats. Pass include_bots=true to include clicks from bots, crawlers, and automated tools.

Terminal window
curl "https://nobsredir.com/api/workspaces/ws_abc123/stats/summary?include_bots=true" \
-H "X-API-Key: nobs_your_key"

Tag-level aggregated analytics are available via the tag analytics endpoints below.

Custom date range

All stats endpoints accept optional from and to parameters to query a specific date range. Both must be provided together in YYYY-MM-DD format.

ParamTypeDescription
fromstringStart date (inclusive), e.g. 2026-01-01
tostringEnd date (inclusive), e.g. 2026-01-31

When from and to are provided, they override the days parameter. If omitted, the default days behavior applies.

Validation rules:

  • Both from and to must be valid YYYY-MM-DD dates
  • from must be on or before to
  • to must not be in the future
  • The range must not exceed 365 days
  • If any rule is violated, the parameters are ignored and the default days behavior is used
Terminal window
# Get daily clicks for January 2026
curl "https://nobsredir.com/api/workspaces/ws_abc123/stats/daily?from=2026-01-01&to=2026-01-31" \
-H "X-API-Key: nobs_your_key"
# Combine with other filters
curl "https://nobsredir.com/api/workspaces/ws_abc123/stats/countries?from=2026-01-01&to=2026-01-31&link=lnk_xyz" \
-H "X-API-Key: nobs_your_key"

GET /workspaces/:wsId/stats/summary

High-level numbers for the workspace.

Terminal window
curl https://nobsredir.com/api/workspaces/ws_abc123/stats/summary \
-H "X-API-Key: nobs_your_key"

Response 200:

{
"total_links": 142,
"total_clicks": 8930,
"total_countries": 34,
"today_clicks": 127
}

GET /workspaces/:wsId/stats/daily

Daily click counts over a time window.

Terminal window
curl "https://nobsredir.com/api/workspaces/ws_abc123/stats/daily?days=7" \
-H "X-API-Key: nobs_your_key"

Query:

ParamTypeDefaultDescription
daysint30Number of days to look back
fromstring-Start date (YYYY-MM-DD), overrides days
tostring-End date (YYYY-MM-DD), overrides days

Response 200:

{
"daily": [
{"date": "2025-01-14", "clicks": 45, "bot_clicks": 3},
{"date": "2025-01-15", "clicks": 62, "bot_clicks": 8},
{"date": "2025-01-16", "clicks": 38, "bot_clicks": 2}
]
}

The clicks field contains human-only clicks. The bot_clicks field contains bot/crawler clicks. These are always returned separately regardless of the include_bots parameter.


GET /workspaces/:wsId/stats/countries

Click breakdown by country code.

Terminal window
curl "https://nobsredir.com/api/workspaces/ws_abc123/stats/countries?limit=5" \
-H "X-API-Key: nobs_your_key"

Query:

ParamTypeDefaultDescription
limitint20Max countries to return

Response 200:

{
"countries": [
{"country": "US", "clicks": 3200},
{"country": "DE", "clicks": 890},
{"country": "GB", "clicks": 650}
]
}

GET /workspaces/:wsId/stats/referrers

Click breakdown by referrer.

Terminal window
curl "https://nobsredir.com/api/workspaces/ws_abc123/stats/referrers?limit=10" \
-H "X-API-Key: nobs_your_key"

Query:

ParamTypeDefaultDescription
limitint20Max referrers to return

Response 200:

{
"referrers": [
{"referer": "https://twitter.com", "clicks": 1200},
{"referer": "https://linkedin.com", "clicks": 890}
]
}

GET /workspaces/:wsId/stats/hourly

Click breakdown by hour of day (0-23, UTC).

Terminal window
curl https://nobsredir.com/api/workspaces/ws_abc123/stats/hourly \
-H "X-API-Key: nobs_your_key"

Response 200:

{
"hourly": [
{"hour": 0, "clicks": 12},
{"hour": 1, "clicks": 8},
{"hour": 14, "clicks": 245}
]
}

GET /workspaces/:wsId/stats/links/:linkId

Stats for a single link. Includes total clicks, daily breakdown (last 30 days), top countries, and top referrers.

Terminal window
curl https://nobsredir.com/api/workspaces/ws_abc123/stats/links/lnk_xyz789 \
-H "X-API-Key: nobs_your_key"

Response 200:

{
"total_clicks": 342,
"daily": [
{"date": "2025-01-14", "clicks": 15},
{"date": "2025-01-15", "clicks": 22}
],
"countries": [
{"country": "US", "clicks": 180},
{"country": "DE", "clicks": 45}
],
"referrers": [
{"referer": "https://twitter.com", "clicks": 90}
]
}

Errors: 404 - Link not found.


GET /workspaces/:wsId/stats/tags/:tagName

Aggregated analytics across all links with the same tag.

Combined analytics for all links with the specified tag. Requires Pro plan or higher.

Terminal window
curl https://nobsredir.com/api/workspaces/ws_abc123/stats/tags/black-friday \
-H "X-API-Key: nobs_your_key"

Query:

ParamTypeDefaultDescription
daysint30Number of days to look back

Response 200:

{
"tag": {
"name": "black-friday",
"color": "#ff0000",
"description": "Black Friday 2026 campaign",
"date_from": "2026-11-25",
"date_to": "2026-11-30"
},
"total_links": 12,
"total_clicks": 4520,
"daily": [
{"date": "2026-02-20", "clicks": 150, "bot_clicks": 5}
],
"countries": [
{"country": "US", "clicks": 2100}
],
"referrers": [
{"referer": "https://twitter.com", "clicks": 800}
],
"hourly": [
{"hour": 14, "clicks": 320}
]
}

Errors: 402 - Requires Pro plan or higher. 404 - Tag not found or has no links.


GET /workspaces/:wsId/stats/tags/compare

Side-by-side daily click comparison between two tags. Requires Team plan or higher.

Terminal window
curl "https://nobsredir.com/api/workspaces/ws_abc123/stats/tags/compare?tags=campaign-a,campaign-b" \
-H "X-API-Key: nobs_your_key"

Query:

ParamTypeRequiredDescription
tagsstringyesComma-separated, exactly 2 tag names
daysint30Number of days to look back

Response 200:

{
"tag1": {
"name": "campaign-a",
"daily": [
{"date": "2026-02-20", "clicks": 100, "bot_clicks": 2}
]
},
"tag2": {
"name": "campaign-b",
"daily": [
{"date": "2026-02-20", "clicks": 75, "bot_clicks": 1}
]
}
}

Errors: 400 - Missing tags parameter or not exactly 2 tags. 402 - Requires Team plan or higher. 404 - One of the tags not found or has no links.


GET /workspaces/:wsId/stats/rollup

Agency-only. Aggregated stats across all client workspaces under the current workspace.

Terminal window
curl https://nobsredir.com/api/workspaces/ws_abc123/stats/rollup \
-H "X-API-Key: nobs_your_key"

Response 200:

{
"clients": [
{
"id": "ws_client1",
"name": "Client A",
"slug": "client-a",
"total_links": 50,
"total_clicks": 3200
},
{
"id": "ws_client2",
"name": "Client B",
"slug": "client-b",
"total_links": 30,
"total_clicks": 1800
}
]
}

Returns an empty array if no client workspaces exist.