Dub · Schema

Link

Dub LinkSchema

Link ManagementURL ShortenerAnalyticsConversion TrackingAffiliate ProgramsOpen Source

Properties

Name Type Description
id string The unique ID of the short link.
domain string The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains).
key string The short link slug. If not provided, a random 7-character slug will be generated.
url string The destination URL of the short link.
trackConversion boolean Whether to track conversions for the short link.
externalId string The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your
tenantId string The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.
programId string The ID of the program the short link is associated with.
partnerId string The ID of the partner the short link is associated with.
archived boolean Whether the short link is archived.
expiresAt string The date and time when the short link will expire in ISO-8601 format.
expiredUrl string The URL to redirect to when the short link has expired.
disabledAt string The date and time when the short link was disabled. When a short link is disabled, it will redirect to its domain's not found URL, and its stats will be excluded from your overall stats.
password string The password required to access the destination URL of the short link.
proxy boolean Whether the short link uses Custom Link Previews feature.
title string The title of the short link. Will be used for Custom Link Previews if `proxy` is true.
description string The description of the short link. Will be used for Custom Link Previews if `proxy` is true.
image string The image of the short link. Will be used for Custom Link Previews if `proxy` is true.
video string The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og
rewrite boolean Whether the short link uses link cloaking.
doIndex boolean Whether to allow search engines to index the short link.
ios string The iOS destination URL for the short link for iOS device targeting.
android string The Android destination URL for the short link for Android device targeting.
geo object Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information.
publicStats boolean Whether the short link's stats are publicly accessible.
tags array The tags assigned to the short link.
folderId string The unique ID of the folder assigned to the short link.
webhookIds array The IDs of the webhooks that the short link is associated with.
comments string The comments for the short link.
shortLink string The full URL of the short link, including the https protocol (e.g. `https://dub.sh/try`).
qrCode string The full URL of the QR code for the short link (e.g. `https://api.dub.co/qr?url=https://dub.sh/try`).
utm_source string The UTM source of the short link.
utm_medium string The UTM medium of the short link.
utm_campaign string The UTM campaign of the short link.
utm_term string The UTM term of the short link.
utm_content string The UTM content of the short link.
testVariants array An array of A/B test URLs and the percentage of traffic to send to each URL.
testStartedAt string The date and time when the tests started.
testCompletedAt string The date and time when the tests were or will be completed.
userId string The user ID of the creator of the short link.
workspaceId string The workspace ID of the short link.
clicks number The number of clicks on the short link.
leads number The number of leads the short link has generated.
conversions number The number of leads that converted to paying customers.
sales number The total number of sales (includes recurring sales) generated by the short link.
saleAmount number The total dollar value of sales (in cents) generated by the short link.
lastClicked string The date and time when the short link was last clicked.
createdAt string The date and time when the short link was created.
updatedAt string The date and time when the short link was last updated.
tagId string Deprecated: Use `tags` instead. The unique ID of the tag assigned to the short link.
projectId string Deprecated: Use `workspaceId` instead. The project ID of the short link.
View JSON Schema on GitHub

JSON Schema

dub-link-schema.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/dub/refs/heads/main/json-schema/dub-link-schema.json",
  "title": "Link",
  "description": "Dub LinkSchema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The unique ID of the short link."
    },
    "domain": {
      "type": "string",
      "description": "The domain of the short link. If not provided, the primary domain for the workspace will be used (or `dub.sh` if the workspace has no domains)."
    },
    "key": {
      "type": "string",
      "description": "The short link slug. If not provided, a random 7-character slug will be generated."
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "The destination URL of the short link."
    },
    "trackConversion": {
      "default": false,
      "description": "Whether to track conversions for the short link.",
      "type": "boolean"
    },
    "externalId": {
      "nullable": true,
      "description": "The ID of the link in your database. If set, it can be used to identify the link in future API requests (must be prefixed with 'ext_' when passed as a query parameter). This key is unique across your workspace.",
      "type": "string"
    },
    "tenantId": {
      "nullable": true,
      "description": "The ID of the tenant that created the link inside your system. If set, it can be used to fetch all links for a tenant.",
      "type": "string"
    },
    "programId": {
      "nullable": true,
      "description": "The ID of the program the short link is associated with.",
      "type": "string"
    },
    "partnerId": {
      "nullable": true,
      "description": "The ID of the partner the short link is associated with.",
      "type": "string"
    },
    "archived": {
      "default": false,
      "description": "Whether the short link is archived.",
      "type": "boolean"
    },
    "expiresAt": {
      "nullable": true,
      "description": "The date and time when the short link will expire in ISO-8601 format.",
      "type": "string"
    },
    "expiredUrl": {
      "nullable": true,
      "description": "The URL to redirect to when the short link has expired.",
      "type": "string",
      "format": "uri"
    },
    "disabledAt": {
      "nullable": true,
      "description": "The date and time when the short link was disabled. When a short link is disabled, it will redirect to its domain's not found URL, and its stats will be excluded from your overall stats.",
      "type": "string"
    },
    "password": {
      "nullable": true,
      "description": "The password required to access the destination URL of the short link.",
      "type": "string"
    },
    "proxy": {
      "default": false,
      "description": "Whether the short link uses Custom Link Previews feature.",
      "type": "boolean"
    },
    "title": {
      "nullable": true,
      "description": "The title of the short link. Will be used for Custom Link Previews if `proxy` is true.",
      "type": "string"
    },
    "description": {
      "nullable": true,
      "description": "The description of the short link. Will be used for Custom Link Previews if `proxy` is true.",
      "type": "string"
    },
    "image": {
      "nullable": true,
      "description": "The image of the short link. Will be used for Custom Link Previews if `proxy` is true.",
      "type": "string"
    },
    "video": {
      "nullable": true,
      "description": "The custom link preview video (og:video). Will be used for Custom Link Previews if `proxy` is true. Learn more: https://d.to/og",
      "type": "string"
    },
    "rewrite": {
      "default": false,
      "description": "Whether the short link uses link cloaking.",
      "type": "boolean"
    },
    "doIndex": {
      "default": false,
      "description": "Whether to allow search engines to index the short link.",
      "type": "boolean"
    },
    "ios": {
      "nullable": true,
      "description": "The iOS destination URL for the short link for iOS device targeting.",
      "type": "string"
    },
    "android": {
      "nullable": true,
      "description": "The Android destination URL for the short link for Android device targeting.",
      "type": "string"
    },
    "geo": {
      "nullable": true,
      "description": "Geo targeting information for the short link in JSON format `{[COUNTRY]: https://example.com }`. See https://d.to/geo for more information.",
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "format": "uri"
      }
    },
    "publicStats": {
      "default": false,
      "description": "Whether the short link's stats are publicly accessible.",
      "type": "boolean"
    },
    "tags": {
      "nullable": true,
      "description": "The tags assigned to the short link.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LinkTagSchemaOutput"
      }
    },
    "folderId": {
      "nullable": true,
      "description": "The unique ID of the folder assigned to the short link.",
      "type": "string"
    },
    "webhookIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The IDs of the webhooks that the short link is associated with."
    },
    "comments": {
      "nullable": true,
      "description": "The comments for the short link.",
      "type": "string"
    },
    "shortLink": {
      "type": "string",
      "format": "uri",
      "description": "The full URL of the short link, including the https protocol (e.g. `https://dub.sh/try`)."
    },
    "qrCode": {
      "type": "string",
      "format": "uri",
      "description": "The full URL of the QR code for the short link (e.g. `https://api.dub.co/qr?url=https://dub.sh/try`)."
    },
    "utm_source": {
      "nullable": true,
      "description": "The UTM source of the short link.",
      "type": "string"
    },
    "utm_medium": {
      "nullable": true,
      "description": "The UTM medium of the short link.",
      "type": "string"
    },
    "utm_campaign": {
      "nullable": true,
      "description": "The UTM campaign of the short link.",
      "type": "string"
    },
    "utm_term": {
      "nullable": true,
      "description": "The UTM term of the short link.",
      "type": "string"
    },
    "utm_content": {
      "nullable": true,
      "description": "The UTM content of the short link.",
      "type": "string"
    },
    "testVariants": {
      "nullable": true,
      "minItems": 2,
      "maxItems": 4,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "percentage": {
            "type": "number",
            "minimum": 10,
            "maximum": 90
          }
        },
        "required": [
          "url",
          "percentage"
        ],
        "additionalProperties": false
      },
      "description": "An array of A/B test URLs and the percentage of traffic to send to each URL.",
      "example": [
        {
          "url": "https://example.com/variant-1",
          "percentage": 50
        },
        {
          "url": "https://example.com/variant-2",
          "percentage": 50
        }
      ]
    },
    "testStartedAt": {
      "description": "The date and time when the tests started.",
      "nullable": true,
      "type": "string"
    },
    "testCompletedAt": {
      "description": "The date and time when the tests were or will be completed.",
      "nullable": true,
      "type": "string"
    },
    "userId": {
      "nullable": true,
      "description": "The user ID of the creator of the short link.",
      "type": "string"
    },
    "workspaceId": {
      "type": "string",
      "description": "The workspace ID of the short link."
    },
    "clicks": {
      "default": 0,
      "description": "The number of clicks on the short link.",
      "type": "number"
    },
    "leads": {
      "default": 0,
      "description": "The number of leads the short link has generated.",
      "type": "number"
    },
    "conversions": {
      "default": 0,
      "description": "The number of leads that converted to paying customers.",
      "type": "number"
    },
    "sales": {
      "default": 0,
      "description": "The total number of sales (includes recurring sales) generated by the short link.",
      "type": "number"
    },
    "saleAmount": {
      "description": "The total dollar value of sales (in cents) generated by the short link.",
      "default": 0,
      "type": "number"
    },
    "lastClicked": {
      "nullable": true,
      "description": "The date and time when the short link was last clicked.",
      "type": "string"
    },
    "createdAt": {
      "type": "string",
      "description": "The date and time when the short link was created."
    },
    "updatedAt": {
      "type": "string",
      "description": "The date and time when the short link was last updated."
    },
    "tagId": {
      "nullable": true,
      "description": "Deprecated: Use `tags` instead. The unique ID of the tag assigned to the short link.",
      "deprecated": true,
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Deprecated: Use `workspaceId` instead. The project ID of the short link.",
      "deprecated": true
    }
  },
  "required": [
    "id",
    "domain",
    "key",
    "url",
    "trackConversion",
    "externalId",
    "tenantId",
    "programId",
    "partnerId",
    "archived",
    "expiresAt",
    "expiredUrl",
    "disabledAt",
    "password",
    "proxy",
    "title",
    "description",
    "image",
    "video",
    "rewrite",
    "doIndex",
    "ios",
    "android",
    "geo",
    "publicStats",
    "tags",
    "folderId",
    "webhookIds",
    "comments",
    "shortLink",
    "qrCode",
    "utm_source",
    "utm_medium",
    "utm_campaign",
    "utm_term",
    "utm_content",
    "userId",
    "workspaceId",
    "clicks",
    "leads",
    "conversions",
    "sales",
    "saleAmount",
    "lastClicked",
    "createdAt",
    "updatedAt",
    "tagId",
    "projectId"
  ],
  "additionalProperties": false
}