{
"error": {
"code": "invalid_request",
"message": "Redirect not found.",
"request_id": "req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10",
"value": "tease_chat",
"details": [
{
"field": "target_url",
"code": "invalid_value",
"message": "target_url must be a valid URL"
}
]
}
}
{
"error": {
"code": "invalid_request",
"message": "Redirect not found.",
"request_id": "req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10",
"value": "tease_chat",
"details": [
{
"field": "target_url",
"code": "invalid_value",
"message": "target_url must be a valid URL"
}
]
}
}
{
"error": {
"code": "invalid_request",
"message": "Redirect not found.",
"request_id": "req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10",
"value": "tease_chat",
"details": [
{
"field": "target_url",
"code": "invalid_value",
"message": "target_url must be a valid URL"
}
]
}
}
{
"error": {
"code": "invalid_request",
"message": "Redirect not found.",
"request_id": "req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10",
"value": "tease_chat",
"details": [
{
"field": "target_url",
"code": "invalid_value",
"message": "target_url must be a valid URL"
}
]
}
}
Domains
Connect Domain
Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.
Records to add at your DNS provider before verification.
Show child attributes
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Teasy Link API","description":"Programmatic access to links, landing pages, groups, domains and analytics.","colors":{"primary":"#ed4c0e","light":"#ed4c0e","dark":"#ed4c0e"},"favicon":"https://mintcdn.com/teasylink/GNDYQAL3EJn7wHdg/api-v1/apple-touch-icon.png?fit=max\u0026auto=format\u0026n=GNDYQAL3EJn7wHdg\u0026q=85\u0026s=ff457ed5c070293e399aacd9d50d94a3","api":{"openapi":"api-v1/external-api-v1.json","playground":{"display":"interactive"}},"navbar":{"primary":{"type":"button","label":"API Dashboard","href":"https://dashboard.teasy.link/app/api"}},"footer":{"socials":{"website":"https://get.teasy.link"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"teasylink","hasAudioNarration":false,"actualSubdomain":"teasylink","customDomains":["docs.teasy.link"],"gitSource":{"type":"github","owner":"teasylinkdev","repo":"api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6a99ef2bcd82b56c2cc5591d","collectionId":"bc3fbbd1-52bd-434d-98ce-d65f8f6dde87","liveDeploymentHistoryId":"6a99ef2bcd82b56c2cc5591d","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a99ef2bcd82b56c2cc5591d","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API reference","count":41},{"language":"default","tag":"Guides","count":13},{"language":"default","tag":"Analytics","count":12},{"language":"default","tag":"Groups","count":10},{"language":"default","tag":"Redirects","count":10},{"language":"default","tag":"Landing Pages","count":9},{"language":"default","tag":"Core Concepts","count":6},{"language":"default","tag":"Working with the API","count":4},{"language":"default","tag":"Domains","count":4},{"language":"default","tag":"Schemas","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-v1/api-reference/domains/connect-a-domain","slug":"/api-v1/api-reference/domains/connect-a-domain","pageMetadata":{"title":"Connect Domain","openapi":"POST /v1/domains","description":"Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.","href":"/api-v1/api-reference/domains/connect-a-domain"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Connect Domain","openapi":"POST /v1/domains","description":"Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.","href":"/api-v1/api-reference/domains/connect-a-domain"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.","operationId":"ExternalDomainsController_create","parameters":[],"requestBody":"6bbfad97-e1eb-4039-96f8-980b2431d818","responses":{"201":"415126c5-fcea-4063-b32f-614433ec8df8","401":"82df903f-9388-476f-8cf1-23cd504d6599","403":"9c66dc6e-0d70-4b7c-867c-1cd8c6777dad","429":"eaf46bce-1a70-47ed-ae50-b0857016a70f","500":"da5a2d0a-3d11-4815-8fc0-35cb1f81fe64"},"security":["d9aaa41f-421c-46a6-9734-1ea60dc36d29"],"summary":"Connect a domain","tags":["Domains"],"method":"post","type":"path","servers":["a2a8f013-aa7a-4d88-9200-47752b2c32e4"],"path":"/v1/domains","baseUrlOptions":["https://api.teasy.link"],"title":"Connect a domain","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hostname":{"type":"string","example":"links.example.com","maxLength":253,"description":"ASCII hostname. Case and surrounding spaces are normalised; internationalised names are not accepted.","isRequired":true,"uniqueKey":"hostname","typeLabel":"string"}},"required":["hostname"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"hostname":"links.example.com"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"415126c5-fcea-4063-b32f-614433ec8df8":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","example":"dom_4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"object":{"type":"string","enum":["domain"],"isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"hostname":{"type":"string","example":"links.example.com","isRequired":true,"uniqueKey":"hostname","typeLabel":"string"},"status":{"type":"string","enum":["pending","ssl_pending","active","failed"],"description":"Verification state. Links on a domain start working once it is active.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"expires_at":{"oneOf":[{"type":"string","format":"date-time","example":"2026-09-04T10:00:00Z","description":"Verification deadline. Meaningful while the domain is pending; null otherwise.","isRequired":true,"uniqueKey":"expires_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-09-04T10:00:00Z","description":"Verification deadline. Meaningful while the domain is pending; null otherwise.","isRequired":true,"uniqueKey":"expires_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expires_at","typeLabel":"string\u003cdate-time> | null"},"created_at":{"type":"string","example":"2026-08-21T10:00:00Z","format":"date-time","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"dns_instructions":{"description":"Records to add at your DNS provider before verification.","type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"CNAME","isRequired":true,"uniqueKey":"dns_instructions.items.[INDEX].type","typeLabel":"string"},"name":{"type":"string","example":"links.example.com","isRequired":true,"uniqueKey":"dns_instructions.items.[INDEX].name","typeLabel":"string"},"value":{"type":"string","example":"teasy.link","isRequired":true,"uniqueKey":"dns_instructions.items.[INDEX].value","typeLabel":"string"},"purpose":{"type":"string","example":"Points your hostname at our servers.","description":"What this record is for, in plain words.","isRequired":true,"uniqueKey":"dns_instructions.items.[INDEX].purpose","typeLabel":"string"}},"required":["type","name","value","purpose"],"uniqueKey":"dns_instructions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"dns_instructions","typeLabel":"object[]"}},"required":["id","object","hostname","status","expires_at","created_at","dns_instructions"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"dom_4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e","object":"domain","hostname":"links.example.com","status":"pending","expires_at":"2026-09-04T10:00:00Z","created_at":"2026-08-21T10:00:00Z","dns_instructions":[{"type":"CNAME","name":"links.example.com","value":"teasy.link","purpose":"Points your hostname at our servers."}]}}},"exampleType":"generated"}},"exampleType":"generated"},"82df903f-9388-476f-8cf1-23cd504d6599":{"description":"API key is missing, malformed, revoked or unknown.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","invalid_api_key","account_suspended","api_access_not_available_on_current_plan","feature_not_available_on_current_plan","plan_limit_reached","analytics_range_exceeds_plan_limit","domain_not_found","domain_not_active","slug_required_for_system_domain","redirect_not_found","landing_not_found","group_not_found","media_not_found","widget_not_found","slug_already_taken","hostname_already_taken","hostname_is_system_domain","domain_provider_unavailable","analytics_not_configured","file_required","payload_too_large","unsupported_media_type","rate_limit_exceeded","daily_quota_exceeded","upload_quota_exceeded","analytics_temporarily_unavailable","internal_error","duplicate_id_in_batch","duplicate_slug_in_batch"],"description":"The contract is this code, not the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"Redirect not found.","description":"Human-readable and subject to change. Do not match on it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","example":"req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10","description":"Quote this when contacting support.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"value":{"type":"string","example":"tease_chat","description":"The offending value, when the failure points at one. Present when the code alone is ambiguous — which feature your plan lacks, which limit you reached.","uniqueKey":"error.value","typeLabel":"string"},"details":{"description":"Present on validation failures, one entry per violation.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"target_url","isRequired":true,"uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_value","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"target_url must be a valid URL","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"required":["field","code","message"],"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"Redirect not found.","request_id":"req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10","value":"tease_chat","details":[{"field":"target_url","code":"invalid_value","message":"target_url must be a valid URL"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"9c66dc6e-0d70-4b7c-867c-1cd8c6777dad":{"description":"Your plan does not include the API or this particular feature.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","invalid_api_key","account_suspended","api_access_not_available_on_current_plan","feature_not_available_on_current_plan","plan_limit_reached","analytics_range_exceeds_plan_limit","domain_not_found","domain_not_active","slug_required_for_system_domain","redirect_not_found","landing_not_found","group_not_found","media_not_found","widget_not_found","slug_already_taken","hostname_already_taken","hostname_is_system_domain","domain_provider_unavailable","analytics_not_configured","file_required","payload_too_large","unsupported_media_type","rate_limit_exceeded","daily_quota_exceeded","upload_quota_exceeded","analytics_temporarily_unavailable","internal_error","duplicate_id_in_batch","duplicate_slug_in_batch"],"description":"The contract is this code, not the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"Redirect not found.","description":"Human-readable and subject to change. Do not match on it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","example":"req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10","description":"Quote this when contacting support.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"value":{"type":"string","example":"tease_chat","description":"The offending value, when the failure points at one. Present when the code alone is ambiguous — which feature your plan lacks, which limit you reached.","uniqueKey":"error.value","typeLabel":"string"},"details":{"description":"Present on validation failures, one entry per violation.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"target_url","isRequired":true,"uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_value","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"target_url must be a valid URL","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"required":["field","code","message"],"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"Redirect not found.","request_id":"req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10","value":"tease_chat","details":[{"field":"target_url","code":"invalid_value","message":"target_url must be a valid URL"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"eaf46bce-1a70-47ed-ae50-b0857016a70f":{"description":"Rate limit or daily quota exceeded. Retry-After tells you when to come back.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","invalid_api_key","account_suspended","api_access_not_available_on_current_plan","feature_not_available_on_current_plan","plan_limit_reached","analytics_range_exceeds_plan_limit","domain_not_found","domain_not_active","slug_required_for_system_domain","redirect_not_found","landing_not_found","group_not_found","media_not_found","widget_not_found","slug_already_taken","hostname_already_taken","hostname_is_system_domain","domain_provider_unavailable","analytics_not_configured","file_required","payload_too_large","unsupported_media_type","rate_limit_exceeded","daily_quota_exceeded","upload_quota_exceeded","analytics_temporarily_unavailable","internal_error","duplicate_id_in_batch","duplicate_slug_in_batch"],"description":"The contract is this code, not the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"Redirect not found.","description":"Human-readable and subject to change. Do not match on it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","example":"req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10","description":"Quote this when contacting support.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"value":{"type":"string","example":"tease_chat","description":"The offending value, when the failure points at one. Present when the code alone is ambiguous — which feature your plan lacks, which limit you reached.","uniqueKey":"error.value","typeLabel":"string"},"details":{"description":"Present on validation failures, one entry per violation.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"target_url","isRequired":true,"uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_value","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"target_url must be a valid URL","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"required":["field","code","message"],"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"Redirect not found.","request_id":"req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10","value":"tease_chat","details":[{"field":"target_url","code":"invalid_value","message":"target_url must be a valid URL"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"da5a2d0a-3d11-4815-8fc0-35cb1f81fe64":{"description":"Unexpected failure on our side.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_request","invalid_api_key","account_suspended","api_access_not_available_on_current_plan","feature_not_available_on_current_plan","plan_limit_reached","analytics_range_exceeds_plan_limit","domain_not_found","domain_not_active","slug_required_for_system_domain","redirect_not_found","landing_not_found","group_not_found","media_not_found","widget_not_found","slug_already_taken","hostname_already_taken","hostname_is_system_domain","domain_provider_unavailable","analytics_not_configured","file_required","payload_too_large","unsupported_media_type","rate_limit_exceeded","daily_quota_exceeded","upload_quota_exceeded","analytics_temporarily_unavailable","internal_error","duplicate_id_in_batch","duplicate_slug_in_batch"],"description":"The contract is this code, not the message.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","example":"Redirect not found.","description":"Human-readable and subject to change. Do not match on it.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"request_id":{"type":"string","example":"req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10","description":"Quote this when contacting support.","isRequired":true,"uniqueKey":"error.request_id","typeLabel":"string"},"value":{"type":"string","example":"tease_chat","description":"The offending value, when the failure points at one. Present when the code alone is ambiguous — which feature your plan lacks, which limit you reached.","uniqueKey":"error.value","typeLabel":"string"},"details":{"description":"Present on validation failures, one entry per violation.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"target_url","isRequired":true,"uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","example":"invalid_value","isRequired":true,"uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"target_url must be a valid URL","isRequired":true,"uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"required":["field","code","message"],"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"required":["code","message","request_id"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"invalid_request","message":"Redirect not found.","request_id":"req_9f2c5a4b7d4c31a2f86e0d91b3c7aa10","value":"tease_chat","details":[{"field":"target_url","code":"invalid_value","message":"target_url must be a valid URL"}]}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"d9aaa41f-421c-46a6-9734-1ea60dc36d29":{"apiKey":{"scheme":"bearer","bearerFormat":"tsl_live_\u003c32 characters>","type":"http","description":"API key issued in the dashboard. Server-side only: never ship it to a browser, and never pass it as a query parameter.","scopes":[]}}},"servers":{"a2a8f013-aa7a-4d88-9200-47752b2c32e4":{"url":"https://api.teasy.link","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"scheme":"bearer","bearerFormat":"tsl_live_\u003c32 characters>","type":"http","description":"API key issued in the dashboard. Server-side only: never ship it to a browser, and never pass it as a query parameter.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key issued in the dashboard. Server-side only: never ship it to a browser, and never pass it as a query parameter.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"api-v1/external-api-v1.json"},"subdomain":"teasylink","siteName":"Teasy Link API","title":"Connect Domain - Teasy Link API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-26T20:37:17.510Z","originalFileLocation":"api-v1/api-reference/domains/connect-a-domain.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Teasy Link API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connect Domain - Teasy Link API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Teasy Link API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://teasylink.mintlify.app/_mintlify/api/og/v2?division=Domains\u0026amp;title=Connect+Domain\u0026amp;description=Add+the+returned+dns_instructions+at+your+DNS+provider.+We+do+not+check+that+the+hostname+resolves%3A+an+unverified+domain+stays+pending+for+72+hours+and+then+tur\u0026amp;theme=65822fa59be5f001c2bef181\u0026amp;signature=4c82512b4f41eed2b4a0cdc13772d91744169620fb1d605b50459ffb6e34f1c9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Connect Domain - Teasy Link API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://teasylink.mintlify.app/_mintlify/api/og/v2?division=Domains\u0026amp;title=Connect+Domain\u0026amp;description=Add+the+returned+dns_instructions+at+your+DNS+provider.+We+do+not+check+that+the+hostname+resolves%3A+an+unverified+domain+stays+pending+for+72+hours+and+then+tur\u0026amp;theme=65822fa59be5f001c2bef181\u0026amp;signature=4c82512b4f41eed2b4a0cdc13772d91744169620fb1d605b50459ffb6e34f1c9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/teasylink/ZCqZg1EeVZRFKzaR/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Teasy Link API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ed4c0e\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-v1/api-reference/domains/connect-a-domain.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.teasy.link/#organization\",\"name\":\"Teasy Link API\",\"url\":\"https://docs.teasy.link\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.teasy.link#website\",\"name\":\"Teasy Link API\",\"url\":\"https://docs.teasy.link\",\"publisher\":{\"@id\":\"https://docs.teasy.link/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain#webpage\",\"url\":\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain\",\"name\":\"Connect Domain\",\"description\":\"Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.\",\"dateModified\":\"2026-08-26T20:37:17.510Z\",\"isPartOf\":{\"@id\":\"https://docs.teasy.link#website\"},\"breadcrumb\":{\"@id\":\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Domains\",\"item\":\"https://docs.teasy.link/api-v1/api-reference/domains/list-domains\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Connect Domain\",\"item\":\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain#apireference\",\"headline\":\"Connect Domain\",\"name\":\"Connect Domain\",\"description\":\"Add the returned dns_instructions at your DNS provider. We do not check that the hostname resolves: an unverified domain stays pending for 72 hours and then turns failed.\",\"url\":\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain\",\"mainEntityOfPage\":{\"@id\":\"https://docs.teasy.link/api-v1/api-reference/domains/connect-a-domain#webpage\"},\"dateModified\":\"2026-08-26T20:37:17.510Z\",\"publisher\":{\"@id\":\"https://docs.teasy.link/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.teasy.link#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Teasy Link API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Teasy Link API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/api-v1/introduction"}]},{"tab":"API reference","groups":[{"group":"Groups","pages":[{"title":"Get Groups","openapi":"GET /v1/groups","href":"/api-v1/api-reference/groups/list-groups"},{"title":"Create Group","openapi":"POST /v1/groups","href":"/api-v1/api-reference/groups/create-a-group"},{"title":"Get Group","openapi":"GET /v1/groups/{id}","href":"/api-v1/api-reference/groups/retrieve-a-group"},{"title":"Update Group","openapi":"PATCH /v1/groups/{id}","href":"/api-v1/api-reference/groups/rename-a-group"},{"title":"Delete Group","openapi":"DELETE /v1/groups/{id}","href":"/api-v1/api-reference/groups/delete-a-group"},{"title":"Assign to Group (Bulk)","openapi":"POST /v1/groups/{id}/assign","href":"/api-v1/api-reference/groups/add-links-to-a-group"},{"title":"Unassign from Group (Bulk)","openapi":"POST /v1/groups/{id}/unassign","href":"/api-v1/api-reference/groups/remove-links-from-a-group"}]},{"group":"Redirects","pages":[{"title":"Get Redirects","openapi":"GET /v1/redirects","href":"/api-v1/api-reference/redirects/list-redirects"},{"title":"Create Redirect","openapi":"POST /v1/redirects","href":"/api-v1/api-reference/redirects/create-a-redirect"},{"title":"Get Redirect","openapi":"GET /v1/redirects/{id}","href":"/api-v1/api-reference/redirects/retrieve-a-redirect"},{"title":"Update Redirect","openapi":"PATCH /v1/redirects/{id}","href":"/api-v1/api-reference/redirects/update-a-redirect"},{"title":"Delete Redirect","openapi":"DELETE /v1/redirects/{id}","href":"/api-v1/api-reference/redirects/delete-a-redirect"},{"title":"Create Redirects (Bulk)","openapi":"POST /v1/redirects/bulk","href":"/api-v1/api-reference/redirects/create-redirects-in-bulk"},{"title":"Delete Dedirects (Bulk)","openapi":"POST /v1/redirects/bulk/delete","href":"/api-v1/api-reference/redirects/delete-redirects-in-bulk"}]},{"group":"Landing Pages","pages":[{"title":"Get Landing Pages","openapi":"GET /v1/landings","href":"/api-v1/api-reference/landings/list-landing-pages"},{"title":"Create Landing","openapi":"POST /v1/landings","href":"/api-v1/api-reference/landings/create-landing"},{"title":"Get Landing Page","openapi":"GET /v1/landings/{id}","href":"/api-v1/api-reference/landings/retrieve-a-landing-page"},{"title":"Update Landing","openapi":"PATCH /v1/landings/{id}","href":"/api-v1/api-reference/landings/patch-landing"},{"title":"Delete Landing","openapi":"DELETE /v1/landings/{id}","href":"/api-v1/api-reference/landings/delete-landing"},{"title":"Delete Landings (Bulk)","openapi":"POST /v1/landings/bulk/delete","href":"/api-v1/api-reference/landings/landings-bulk-delete"}]},{"group":"Domains","pages":[{"title":"Get Domains","openapi":"GET /v1/domains","description":"Your own domains in every status, including failed ones — a domain that quietly disappears from your panel looks like our loss.","href":"/api-v1/api-reference/domains/list-domains"},{"title":"Connect Domain","openapi":"POST /v1/domains","href":"/api-v1/api-reference/domains/connect-a-domain"},{"title":"Get Domain","openapi":"GET /v1/domains/{id}","description":null,"href":"/api-v1/api-reference/domains/retrieve-a-domain"},{"title":"Delete Domain","openapi":"DELETE /v1/domains/{id}","href":"/api-v1/api-reference/domains/disconnect-a-domain"}]},{"group":"Uploads","pages":[{"title":"Upload Media","openapi":"POST /v1/uploads","href":"/api-v1/api-reference/uploads/create-upload"}]},{"group":"Analytics","pages":[{"group":"Account","pages":[{"title":"Get Summary","openapi":"GET /v1/analytics","href":"/api-v1/api-reference/analytics/account-analytics-summary"},{"title":"Get Series","openapi":"GET /v1/analytics/series","href":"/api-v1/api-reference/analytics/account-analytics-over-time"},{"title":"Get Breakdown","openapi":"GET /v1/analytics/breakdown","href":"/api-v1/api-reference/analytics/account-analytics-by-dimension"}]},{"group":"Groups","pages":[{"title":"Get Summary","openapi":"GET /v1/groups/{id}/analytics","href":"/api-v1/api-reference/analytics/group-analytics-summary"},{"title":"Get Series","openapi":"GET /v1/groups/{id}/analytics/series","href":"/api-v1/api-reference/analytics/group-analytics-over-time"},{"title":"Get Breakdown","openapi":"GET /v1/groups/{id}/analytics/breakdown","href":"/api-v1/api-reference/analytics/group-analytics-by-dimension"}]},{"group":"Landing Pages","pages":[{"title":"Get Summary","openapi":"GET /v1/landings/{id}/analytics","href":"/api-v1/api-reference/analytics/landing-page-analytics-summary"},{"title":"Get Series","openapi":"GET /v1/landings/{id}/analytics/series","href":"/api-v1/api-reference/analytics/landing-page-analytics-over-time"},{"title":"Get Breakdown","openapi":"GET /v1/landings/{id}/analytics/breakdown","href":"/api-v1/api-reference/analytics/landing-page-analytics-by-dimension"}]},{"group":"Redirects","pages":[{"title":"Get Summary","openapi":"GET /v1/redirects/{id}/analytics","href":"/api-v1/api-reference/analytics/redirect-analytics-summary"},{"title":"Get Series","openapi":"GET /v1/redirects/{id}/analytics/series","href":"/api-v1/api-reference/analytics/redirect-analytics-over-time"},{"title":"Get Breakdown","openapi":"GET /v1/redirects/{id}/analytics/breakdown","href":"/api-v1/api-reference/analytics/redirect-analytics-by-dimension"}]}]},{"group":"Schemas","pages":[{"title":"Redirect","href":"/api-v1/api-reference/schemas/redirect"},{"title":"Landing page","href":"/api-v1/api-reference/schemas/landing-page"},{"title":"Group","href":"/api-v1/api-reference/schemas/group"},{"title":"Domain","href":"/api-v1/api-reference/schemas/domain"}]}]}]},"title":"Connect Domain - Teasy Link API","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}