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. |
JSON Schema
{
"$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
}