GET/api/v6/urlshortener/overview

Organization overview

Inventory, range activity against the previous period, trends, top links and breakdowns for your whole organization.

Scope and limits

Scope

API key with the urlshortener service enabled

Usage limit

120 requests per minute

  • Windows of up to 366 days by day, and up to 31 days by hour.
  • Up to 100 values per dimension and per ranking.
  • Cost quota: 150 units per minute per organization (see above). Two overviews at once per organization.

Your organization’s whole URL shortener in a single call, without walking the links one by one. Days and hours are Colombia’s (America/Bogota).

  • inventory is a snapshot of the moment and does not depend on the range: live links by status (expired are active ones whose expiry has passed), aliases, those that never received a visit and lifetime visits.
  • totals is what happened in the range, and today, the same for today. The previous period is requested with `compare=previous`: then previous, previousTotals and, with series, previousSeries come, for the previous period of the same length (30 days up to today are compared with the 30 before, not with the calendar month). Without asking for it they come as null.
  • Optional blocks are requested in include. Those you do not request come as null; those you request that have no data, empty.
Without `include`, you get `series`, `top` and `recent`.
`include` blockWhat it adds
seriesseries (and previousSeries when comparing): links created, visits and uniques per day or hour, with idle points as zero.
toptopLinks: the links with the most visits within the range, excluding deleted ones.
recentrecent: the last 5 links created and the last 5 visited.
dimensionsdimensions: the dimensions breakdowns summed over all your links, with the same rules as a single link’s statistics.
heatmapheatmap: visits by weekday and hour (168 cells). With a range longer than 31 days, it is computed over its last 31, and the response says which.

Unique visits are the sum of each day’s, not distinct people. Responses can be up to one minute old (X-Cache header).

Change of 2026-09-30: the previous period used to come always; now only with compare=previous. If you use it, add the parameter.

The overview walks every link of your organization, so its quota goes by what it costs: each overview spends units from a quota of 150 per minute for your organization. It spends 2 for the query; 1 for each block that does not depend on the length of the range (inventory, today, recent, heatmap), and, for every 31 days of the range, 1 for each block that walks it (totals, series, top, dimensions, and the previous-period ones if you compare). A 30-day overview with series,top,recent spends 8; comparing, 10; a one-year one with everything, 78. Without units, 429 with Retry-After. And at most two overviews of your organization are computed at once: one arriving with two in progress waits a few seconds and, if it does not get a turn, gets 429.

Query parameters

from
stringoptional
First day of the window, YYYY-MM-DD in Colombia time, inclusive. Defaults to 29 days before to (a 30-day window).
to
stringoptional
Last day of the window, YYYY-MM-DD in Colombia time, inclusive. Defaults to today.
granularity
stringoptional
Size of each point of the series. day allows windows of up to 366 days; hour, up to 31.
dayhour

Default: day

compare
stringoptional
previous adds the previous period of the same length (previous, previousTotals and, with series, previousSeries). none, or not sending it, omits it. Until 2026-09-30 the default was previous.
previousnone

Default: none

include
stringoptional
Comma-separated optional blocks: series, top, recent, dimensions, heatmap. Defaults to series,top,recent. An unknown name returns 400.
dimensions
stringoptional
Comma-separated breakdown dimensions: country, subdivision, city, device, os, browser, referrer. Defaults to country,device,os,browser,referrer. Unknown names are ignored.
top
integeroptional
How many values each dimension (and each ranking) returns. Max 100.

Default: 10

Responses

200

Organization overview. The example is with compare=previous.

{
  "success": true,
  "data": {
    "range": { "from": "2026-08-25", "to": "2026-09-23", "granularity": "day", "timezone": "America/Bogota" },
    "previous": { "from": "2026-07-26", "to": "2026-08-24" },
    "inventory": {
      "total": 1250, "active": 1190, "expired": 40, "disabled": 20, "blocked": 0,
      "aliases": 35, "neverClicked": 610, "clicks": 48210, "uniqueClicks": 30115
    },
    "today": { "linksCreated": 42, "clicks": 1310, "uniqueClicks": 902, "linksWithClicks": 118 },
    "totals": { "linksCreated": 820, "clicks": 21400, "uniqueClicks": 14020, "linksWithClicks": 540 },
    "previousTotals": { "linksCreated": 610, "clicks": 17950, "uniqueClicks": 11800, "linksWithClicks": 455 },
    "series": [
      { "at": "2026-08-25", "linksCreated": 25, "clicks": 690, "uniqueClicks": 455 }
    ],
    "previousSeries": [
      { "at": "2026-07-26", "linksCreated": 18, "clicks": 540, "uniqueClicks": 360 }
    ],
    "topLinks": [
      {
        "domain": "h0b.co", "code": "promo-septiembre", "shortUrl": "https://h0b.co/promo-septiembre",
        "longUrl": "https://example.com/promo", "status": "active", "expiresAt": null,
        "clicks": 3120, "uniqueClicks": 2210, "lastClickAt": "2026-09-23T18:22:10Z"
      }
    ],
    "dimensions": null,
    "recent": { "created": [], "clicked": [] },
    "heatmap": null
  },
  "meta": {
    "requestId": "8f0c0e2a4b1d4c8fae2b7a91e0c5d3f6",
    "timestamp": "2026-09-23T18:30:00+00:00",
    "responseTimeMs": 7.2
  }
}
400

An invalid date or a window above the limit, or a compare or include value that does not exist.

401

Invalid or missing credentials.

403

The API key does not have the URL shortener enabled (or it is turned off for your organization), the key cannot be used from the request network, or the organization is not active.

429

Request limit exceeded.

504

The query took too long and we stopped it. It happens with very large queries for organizations with many links: narrow it (fewer days, fewer sections, more filters). Repeating it as is does not help.

Possible errors

Codes this endpoint can return in error.code. The full detail lives in the catalog.

See the full catalog
GET /api/v6/urlshortener/overview
curl -X GET 'https://developers.hablame.co/api/v6/urlshortener/overview?include=series%2Ctop%2Crecent' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer hk_YOUR_API_KEY'

Try-It

Run the request against the real API with your own API key.

The key is used only in your browser for this request. It is not stored nor sent anywhere else.

Parameters

First day of the window, YYYY-MM-DD in Colombia time, inclusive. Defaults to 29 days before to (a 30-day window).

Last day of the window, YYYY-MM-DD in Colombia time, inclusive. Defaults to today.

Size of each point of the series. day allows windows of up to 366 days; hour, up to 31.

previous adds the previous period of the same length (previous, previousTotals and, with series, previousSeries). none, or not sending it, omits it. Until 2026-09-30 the default was previous.

Comma-separated optional blocks: series, top, recent, dimensions, heatmap. Defaults to series,top,recent. An unknown name returns 400.

Comma-separated breakdown dimensions: country, subdivision, city, device, os, browser, referrer. Defaults to country,device,os,browser,referrer. Unknown names are ignored.

How many values each dimension (and each ranking) returns. Max 100.

GET https://developers.hablame.co/api/v6/urlshortener/overview?include=series%2Ctop%2Crecent

Response

You have not sent a request yet.