API
Last updated on 10 September 2025.
This is an overview of the Application Programming Interfaces (APIs) available on Nimble Links. In this document, we cover:
Base URL
The base URL to send all API requests is:
https://www.nimblelinks.com/api/v1.0
Authentication
To get started, head over to your team settings and generate an API key. A key will look something like this:
1a2b3c4d5e6f7g8h9i0j1k2l3m4n5
Every request you send to our API should include your API key as a bearer token:
Authorization: Bearer 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5
Rate Limits
To ensure a consistent developer experience for all API users, the Nimble Links API is rate limited. Rate limits are applied on a per-team basis in unit time. If you exceed the rate limit, you will receive a 429 Too Many Requests response.
These are the current limits that apply to all teams by default:
- 30 requests per minute
- 300 requests per hour
We may change these limits in the future to balance for demand and reliability.
For higher limits, please reach out to support@nimblelinks.com.
Link Management API
This API allows you to list, create, and delete links under your team.
List Links
Retrieve a paginated list of links.
| Parameter | Type | Description |
|---|---|---|
page | integer | The page number to retrieve Default: 1 |
limit | integer | The number of links to retrieve per page Default: 10 Maximum: 25 |
{
"data": [
{
"id": "a1b2c3e4",
"title": null,
"type": "short-link",
"settings": {
"destination": "https://example.com",
"forward_parameters": false
},
"url": "https://nimble.li/a1b2c3e4",
"created_at": "2023-11-14T13:32:55.000000Z",
"updated_at": "2023-11-14T13:33:38.000000Z"
},
{
"...": "..."
}
],
"links": {
"first": "https://www.nimblelinks.com/api/v1.0/links?page=1",
"last": "https://www.nimblelinks.com/api/v1.0/links?page=4",
"prev": null,
"next": "https://www.nimblelinks.com/api/v1.0/links?page=2"
}
}Get Link
Retrieve a specific link.
{
"data": {
"id": "a1b2c3e4",
"title": null,
"type": "qr-code",
"settings": {
"destination": "https://example.com",
"forward_parameters": false
},
"url": "https://nimble.li/a1b2c3e4",
"created_at": "2023-11-14T13:31:41.000000Z",
"updated_at": "2023-11-14T13:31:41.000000Z"
}
}Create Link
Create a new link.
This endpoint accepts different parameters depending on the type of link you're creating.
Short Link
Shorten a long URL.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destination | string | The destination URL |
{
"type": "short-link",
"destination": "https://example.com"
}Password-Protected Link
Create a link that requires a password to access.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destination | string | The destination URL |
password | string | The password |
{
"type": "password-protected-link",
"destination": "https://example.com",
"password": "secret"
}QR Code
Create a QR code from a URL.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destination | string | The destination URL |
{
"type": "qr-code",
"destination": "https://example.com"
}Redirect Evenly
Create a link that distributes traffic evenly.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | string[] | List of destination URLs |
{
"type": "redirect-evenly",
"destinations": [
"https://example.com/a",
"https://example.com/b"
]
}Redirect Randomly
Create a link that distributes traffic randomly.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | string[] | List of destination URLs |
{
"type": "redirect-randomly",
"destinations": [
"https://example.com/a",
"https://example.com/b"
]
}Redirect by Weight
Create a link that distributes traffic using weighted randomization.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | object[] | List of URLs and their corresponding weights |
destinations.*.url | string | The destination URL |
destinations.*.weight | string | The weight as an integer or a decimal number divisible by 0.5 and maximum 1 decimal point |
{
"type": "redirect-weight",
"destinations": [
{
"url": "https://example.com/a",
"weight": 1
},
{
"url": "https://example.com/b",
"weight": 3
}
]
}Redirect by Device
Create a link that redirects users to different destinations based on their device type.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | object[] | List of device types and their corresponding destination URLs |
destinations.*.category | enum | desktop, tablet, mobile, or fallback |
destinations.*.url | string | The destination URL |
{
"type": "redirect-device",
"destinations": [
{
"category": "mobile",
"url": "https://m.example.com"
},
{
"category": "fallback",
"url": "https://example.com"
}
]
}Redirect by Operating System
Create a link that redirects users to different destinations based on their operating system.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | object[] | List of operating systems and their corresponding destination URLs |
destinations.*.category | enum | ios, android, or fallback |
destinations.*.url | string | The destination URL |
{
"type": "redirect-operating-system",
"destinations": [
{
"category": "ios",
"url": "https://example.com/ios"
},
{
"category": "fallback",
"url": "https://example.com"
}
]
}Redirect by Browser
Create a link that redirects users to different destinations based on their web browser.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | object[] | List of browsers and their corresponding destination URLs |
destinations.*.category | enum | chrome, firefox, safari, edge, opera, or fallback |
destinations.*.url | string | The destination URL |
{
"type": "redirect-browser",
"destinations": [
{
"category": "chrome",
"url": "https://example.com/chrome"
},
{
"category": "fallback",
"url": "https://example.com"
}
]
}Redirect by Country
Create a link that redirects users to different destinations based on their country.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | object[] | List of countries and their corresponding destination URLs |
destinations.*.country | string(2) | ISO 3166-1 alpha-2 country code |
destinations.*.url | string | The destination URL |
{
"type": "redirect-country",
"destinations": [
{
"country": "US",
"url": "https://example.com/us"
},
{
"country": "CA",
"url": "https://example.com/ca"
},
{
"country": "fallback",
"url": "https://example.com"
}
]
}Redirect by Language
Create a link that redirects users to different destinations based on their preferred language.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | object[] | List of languages and their corresponding destination URLs |
destinations.*.language | string(2) | ISO 639-1 country code |
destinations.*.url | string | The destination URL |
{
"type": "redirect-language",
"destinations": [
{
"country": "en",
"url": "https://example.com/en"
},
{
"country": "fr",
"url": "https://example.com/fr"
},
{
"country": "fallback",
"url": "https://example.com"
}
]
}Redirect by Click Count
Create a link that redirects users to different destinations based on the number of clicks on your link.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | object[] | List of limits and their corresponding destination URLs |
destinations.*.limit | integer | Number of clicks allowed per destination -1 represents fallback. |
destinations.*.url | string | The destination URL |
{
"type": "redirect-click-count",
"destinations": [
{
"limit": 10,
"url": "https://example.com/super-early-bird"
},
{
"limit": 90,
"url": "https://example.com/early-bird"
},
{
"limit": -1,
"url": "https://example.com/fallback"
}
]
}Redirect by Date & Time
Create a link that redirects users to different destinations based on when they click on the link.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | object[] | List of datetimes and and their corresponding destination URLs |
destinations.*.datetime | datetime | Datetime in YYYY-MM-DDThh:mm format |
destinations.*.url | string | The destination URL |
{
"type": "redirect-date-time",
"destinations": [
{
"datetime": "2023-01-15T15:12",
"url": "https://example.com/early-bird"
},
{
"datetime": -1,
"url": "https://example.com/standard-price"
}
]
}Redirect by Time
Create a link that redirects users to different destinations based on time of day.
| Parameter | Type | Description |
|---|---|---|
type | enum | The type of link to create |
title | string | An optional title for the link |
forward_parameters | boolean | Whether URL parameters should be forwarded to the destination Default: false |
destinations | object[] | List of times and and their corresponding destination URLs |
destinations.*.time | time | Datetime in hh:mm format |
destinations.*.url | string | The destination URL |
{
"type": "redirect-time",
"destinations": [
{
"datetime": "15:00",
"url": "https://example.com/lunch-menu"
},
{
"datetime": -1,
"url": "https://example.com/dinner-menu"
}
]
}Redirect Formula
Creating links that redirect by formula is currently not supported via the API.
Delete Link
Delete a link permanently.
Get QR Code
Retrieve the QR Code files for a specific link.
{
"data": {
"svg": "https://www.nimblelinks.com/links/a1b2c3e4/qr/download?format=svg",
"png": "https://www.nimblelinks.com/links/a1b2c3e4/qr/download?format=png"
}
}Link Analytics API
The Analytics API provides endpoints for monitoring how a team's links are performing.
Link Clicks Total
Get the total number of times a link has been clicked.
{
"value": 4812
}Link Clicks Trend
Get the daily, weekly, or monthly number of clicks on a link
| Parameter | Type | Description |
|---|---|---|
interval | enum | daily, weekly, or monthly |
start | date | In YYYY-MM-DD format |
end | date | In YYYY-MM-DD format |
{
"2023-01-01": 3,
"2023-01-02": 0,
"2023-01-03": 1
}