{"openapi":"3.1.0","info":{"title":"Beklio Link Developer API","version":"1.0.0"},"servers":[{"url":"https://api.beklio.com"}],"paths":{"/api/v1/links":{"get":{"operationId":"listLinks","summary":"List the user's short links, newest first. Filter with domainId, kind (DIRECT, TREE, TREE_ITEM, BOARD, BOARD_ITEM), folderId, ids or platforms. Paginate with limit (max 100) and cursor or page; meta carries total, hasNext and nextCursor. Set includeRoutes to 'all' to embed route graphs. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_list_links","security":[{"bearerAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":2048}},{"name":"page","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},{"name":"limit","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"integer","minimum":1,"maximum":100}},{"name":"kind","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","enum":["DIRECT","TREE","TREE_ITEM","BOARD","BOARD_ITEM"]}},{"name":"folderId","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1}},{"name":"domainId","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1}},{"name":"ids","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},{"name":"routeIds","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},{"name":"platforms","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string"}},{"name":"includeRoutes","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","const":"all"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"domainId":{"type":"string"},"kind":{"type":"string","enum":["DIRECT","TREE","TREE_ITEM","BOARD","BOARD_ITEM"]},"routingMode":{"type":"string","enum":["SIMPLE","ADVANCED"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"routes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":{}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id"],"additionalProperties":{}}},{"type":"object","properties":{"links":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"domainId":{"type":"string"},"kind":{"type":"string","enum":["DIRECT","TREE","TREE_ITEM","BOARD","BOARD_ITEM"]},"routingMode":{"type":"string","enum":["SIMPLE","ADVANCED"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"routes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":{}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"total":{"type":"number"}},"required":["links"],"additionalProperties":{}}]},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"post":{"operationId":"createLink","summary":"Create a short link. Provide domainId and either a destination url or a routes array. Optional: slug (3-64 letters, digits or hyphens; check it first with checkSlugAvailability), title, description, folderId, routingMode (SIMPLE or ADVANCED). Returns the created link. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_create_link","security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"201":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"domainId":{"type":"string"},"kind":{"type":"string","enum":["DIRECT","TREE","TREE_ITEM","BOARD","BOARD_ITEM"]},"routingMode":{"type":"string","enum":["SIMPLE","ADVANCED"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"routes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":{}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"},"domainId":{"type":"string","minLength":1},"slug":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9-]{3,64}$"},{"type":"null"}]},"kind":{"type":"string","enum":["DIRECT","TREE","TREE_ITEM","BOARD","BOARD_ITEM"]},"routingMode":{"type":"string","enum":["SIMPLE","ADVANCED"]},"autoAppRedirectEnabled":{"type":"boolean"},"routes":{"minItems":1,"type":"array","items":{"type":"object","properties":{"clientRouteId":{"type":"string","minLength":1},"platform":{"type":"string","enum":["GLOBAL","DEVICE","BROWSER","OS","GEO","LANGUAGE"]},"actionType":{"type":"string","enum":["URL","SMS","WHATSAPP","EMAIL","EVENT","EMBED"]},"actionConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"targeting":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"deviceProfileIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}},"targetItemIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}},"isGlobalFallback":{"type":"boolean"},"isActive":{"type":"boolean"},"priority":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sortOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"conditions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["COUNTRY","DEVICE_PROFILE","OS","USER_AGENT","LANGUAGE","REFERRER_DOMAIN"]},"operator":{"type":"string","enum":["IN","NOT_IN","EQUALS","REGEX"]},"valueKey":{"type":"string","minLength":1},"valueJson":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type","valueKey"],"additionalProperties":false}},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PASSWORD","EXPIRATION_DATE","LIMIT","UTM","REDIRECT_DELAY"]},"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type"],"additionalProperties":false}}},"additionalProperties":false}},"routeFeatures":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PASSWORD","EXPIRATION_DATE","LIMIT","UTM","REDIRECT_DELAY"]},"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"scope":{"type":"string"},"routeIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}}},"required":["type"],"additionalProperties":false}},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"treeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"boardId":{"anyOf":[{"type":"string"},{"type":"null"}]},"folderId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sortOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"seoConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"features":{"type":"object","properties":{"alias":{"type":"string","pattern":"^[A-Za-z0-9-]{3,64}$"}},"additionalProperties":false},"seo":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"indexable":{"type":"boolean"}},"additionalProperties":false},"qr":{"type":"object","properties":{"isQrCreated":{"type":"boolean"},"payload":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"additionalProperties":false}},"required":["domainId"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}}},"/api/v1/links/{id}":{"get":{"operationId":"getLink","summary":"Get one link by id with its routes and totals (totalEvents, totalVisitors). Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_get_link","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"domainId":{"type":"string"},"kind":{"type":"string","enum":["DIRECT","TREE","TREE_ITEM","BOARD","BOARD_ITEM"]},"routingMode":{"type":"string","enum":["SIMPLE","ADVANCED"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"routes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":{}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"patch":{"operationId":"updateLink","summary":"Partially update a link (title, description, slug, routes, folderId, qr, seo). Send only the fields that change. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_update_link","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"domainId":{"type":"string"},"kind":{"type":"string","enum":["DIRECT","TREE","TREE_ITEM","BOARD","BOARD_ITEM"]},"routingMode":{"type":"string","enum":["SIMPLE","ADVANCED"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"routes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":{}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string","format":"uri"},"domainId":{"type":"string","minLength":1},"slug":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9-]{3,64}$"},{"type":"null"}]},"kind":{"type":"string","enum":["DIRECT","TREE","TREE_ITEM","BOARD","BOARD_ITEM"]},"routingMode":{"type":"string","enum":["SIMPLE","ADVANCED"]},"autoAppRedirectEnabled":{"type":"boolean"},"routes":{"minItems":1,"type":"array","items":{"type":"object","properties":{"clientRouteId":{"type":"string","minLength":1},"platform":{"type":"string","enum":["GLOBAL","DEVICE","BROWSER","OS","GEO","LANGUAGE"]},"actionType":{"type":"string","enum":["URL","SMS","WHATSAPP","EMAIL","EVENT","EMBED"]},"actionConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"targeting":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"deviceProfileIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}},"targetItemIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}},"isGlobalFallback":{"type":"boolean"},"isActive":{"type":"boolean"},"priority":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sortOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"conditions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["COUNTRY","DEVICE_PROFILE","OS","USER_AGENT","LANGUAGE","REFERRER_DOMAIN"]},"operator":{"type":"string","enum":["IN","NOT_IN","EQUALS","REGEX"]},"valueKey":{"type":"string","minLength":1},"valueJson":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type","valueKey"],"additionalProperties":false}},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PASSWORD","EXPIRATION_DATE","LIMIT","UTM","REDIRECT_DELAY"]},"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type"],"additionalProperties":false}}},"additionalProperties":false}},"routeFeatures":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PASSWORD","EXPIRATION_DATE","LIMIT","UTM","REDIRECT_DELAY"]},"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"scope":{"type":"string"},"routeIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}}},"required":["type"],"additionalProperties":false}},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"treeId":{"anyOf":[{"type":"string"},{"type":"null"}]},"boardId":{"anyOf":[{"type":"string"},{"type":"null"}]},"folderId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sortOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"options":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"seoConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"features":{"type":"object","properties":{"alias":{"type":"string","pattern":"^[A-Za-z0-9-]{3,64}$"}},"additionalProperties":false},"seo":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"imageUrl":{"type":"string"},"indexable":{"type":"boolean"}},"additionalProperties":false},"qr":{"type":"object","properties":{"isQrCreated":{"type":"boolean"},"payload":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"additionalProperties":false}},"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}},"delete":{"operationId":"deleteLink","summary":"Permanently delete a link and its routes. Requires scope links:delete. Irreversible: confirm with the user before calling. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:delete"],"x-mcp-tool-name":"link_delete_link","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"204":{"description":"Resource deleted"},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/trees":{"get":{"operationId":"listTrees","summary":"List the user's link-in-bio trees (profile pages). Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_list_trees","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"post":{"operationId":"createTree","summary":"Create a link-in-bio tree. username is required (3-64 letters, digits or hyphens); optional title, bio, image and appearance. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_create_tree","security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"201":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"username":{"type":"string","pattern":"^@?[A-Za-z0-9-]{3,64}$"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"bio":{"anyOf":[{"type":"string"},{"type":"null"}]},"image":{"anyOf":[{"type":"string"},{"type":"null"}]},"appearance":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["username"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}}},"/api/v1/links/trees/{id}":{"get":{"operationId":"getTree","summary":"Get one link-in-bio tree by id. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_get_tree","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"patch":{"operationId":"updateTree","summary":"Partially update a link-in-bio tree. Send only the fields that change. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_update_tree","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"username":{"type":"string","pattern":"^@?[A-Za-z0-9-]{3,64}$"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"bio":{"anyOf":[{"type":"string"},{"type":"null"}]},"image":{"anyOf":[{"type":"string"},{"type":"null"}]},"appearance":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}},"delete":{"operationId":"deleteTree","summary":"Permanently delete a link-in-bio tree. Requires scope links:delete. Irreversible: confirm with the user before calling. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:delete"],"x-mcp-tool-name":"link_delete_tree","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"204":{"description":"Resource deleted"},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/boards":{"get":{"operationId":"listBoards","summary":"List the user's boards (shared link collections). Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_list_boards","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"post":{"operationId":"createBoard","summary":"Create a board. title and slug are required; layout is optional. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_create_board","security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"201":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"layout":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["title","slug"],"additionalProperties":false}}}}}},"/api/v1/links/boards/{id}":{"get":{"operationId":"getBoard","summary":"Get one board by id. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_get_board","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"patch":{"operationId":"updateBoard","summary":"Partially update a board. Send only the fields that change. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_update_board","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"layout":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}}}},"delete":{"operationId":"deleteBoard","summary":"Permanently delete a board. Requires scope links:delete. Irreversible: confirm with the user before calling. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:delete"],"x-mcp-tool-name":"link_delete_board","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"204":{"description":"Resource deleted"},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/folders":{"get":{"operationId":"listFolders","summary":"List the user's folders; filter with boardId to see one board's folders. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_list_folders","security":[{"bearerAuth":[]}],"parameters":[{"name":"boardId","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"post":{"operationId":"createFolder","summary":"Create a folder to organise links. title is required; optional boardId, description, icon, color. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_create_folder","security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"201":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1},"boardId":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"icon":{"anyOf":[{"type":"string"},{"type":"null"}]},"color":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["title"],"additionalProperties":false}}}}}},"/api/v1/links/folders/{id}":{"get":{"operationId":"getFolder","summary":"Get one folder by id. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_get_folder","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"patch":{"operationId":"updateFolder","summary":"Partially update a folder. Send only the fields that change. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_update_folder","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1},"boardId":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"icon":{"anyOf":[{"type":"string"},{"type":"null"}]},"color":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}}}},"delete":{"operationId":"deleteFolder","summary":"Permanently delete a folder. Requires scope links:delete. Irreversible: confirm with the user before calling. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:delete"],"x-mcp-tool-name":"link_delete_folder","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"204":{"description":"Resource deleted"},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/{id}/routes":{"get":{"operationId":"listRoutes","summary":"List the routes of a link. A route decides where a visitor goes for a platform (GLOBAL, DEVICE, BROWSER, OS, GEO, LANGUAGE); every link keeps a GLOBAL fallback route. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_list_routes","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"post":{"operationId":"createRoute","summary":"Add a route to a link. actionType is URL, SMS, WHATSAPP, EMAIL, EVENT or EMBED and actionConfig holds its fields (for URL: { url }). Optional platform, targeting, priority, conditions and features. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_create_route","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"201":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"clientRouteId":{"type":"string","minLength":1},"platform":{"type":"string","enum":["GLOBAL","DEVICE","BROWSER","OS","GEO","LANGUAGE"]},"actionType":{"type":"string","enum":["URL","SMS","WHATSAPP","EMAIL","EVENT","EMBED"]},"actionConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"targeting":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"deviceProfileIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}},"targetItemIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}},"isGlobalFallback":{"type":"boolean"},"isActive":{"type":"boolean"},"priority":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sortOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"conditions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["COUNTRY","DEVICE_PROFILE","OS","USER_AGENT","LANGUAGE","REFERRER_DOMAIN"]},"operator":{"type":"string","enum":["IN","NOT_IN","EQUALS","REGEX"]},"valueKey":{"type":"string","minLength":1},"valueJson":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type","valueKey"],"additionalProperties":false}},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PASSWORD","EXPIRATION_DATE","LIMIT","UTM","REDIRECT_DELAY"]},"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type"],"additionalProperties":false}}},"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}}},"/api/v1/links/{id}/routes/{routeId}":{"get":{"operationId":"getRoute","summary":"Get one route of a link by routeId. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_get_route","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"patch":{"operationId":"updateRoute","summary":"Partially update a route (action, targeting, priority, active flag). Send only the fields that change. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_update_route","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"clientRouteId":{"type":"string","minLength":1},"platform":{"type":"string","enum":["GLOBAL","DEVICE","BROWSER","OS","GEO","LANGUAGE"]},"actionType":{"type":"string","enum":["URL","SMS","WHATSAPP","EMAIL","EVENT","EMBED"]},"actionConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"targeting":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},"deviceProfileIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}},"targetItemIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1}},"isGlobalFallback":{"type":"boolean"},"isActive":{"type":"boolean"},"priority":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sortOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"conditions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["COUNTRY","DEVICE_PROFILE","OS","USER_AGENT","LANGUAGE","REFERRER_DOMAIN"]},"operator":{"type":"string","enum":["IN","NOT_IN","EQUALS","REGEX"]},"valueKey":{"type":"string","minLength":1},"valueJson":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type","valueKey"],"additionalProperties":false}},"features":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["PASSWORD","EXPIRATION_DATE","LIMIT","UTM","REDIRECT_DELAY"]},"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type"],"additionalProperties":false}}},"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}},"delete":{"operationId":"deleteRoute","summary":"Permanently delete a route from a link. Requires scope links:delete. Irreversible: confirm with the user before calling. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:delete"],"x-mcp-tool-name":"link_delete_route","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"204":{"description":"Resource deleted"},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/{id}/routes/{routeId}/conditions":{"get":{"operationId":"listRouteConditions","summary":"List the conditions of a route. Conditions restrict when it applies (COUNTRY, DEVICE_PROFILE, OS, USER_AGENT, LANGUAGE, REFERRER_DOMAIN). Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_list_route_conditions","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"post":{"operationId":"createRouteCondition","summary":"Add a condition to a route. type and valueKey are required; operator is IN, NOT_IN, EQUALS or REGEX. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_create_route_condition","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"201":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string","enum":["COUNTRY","DEVICE_PROFILE","OS","USER_AGENT","LANGUAGE","REFERRER_DOMAIN"]},"operator":{"type":"string","enum":["IN","NOT_IN","EQUALS","REGEX"]},"valueKey":{"type":"string","minLength":1},"valueJson":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type","valueKey"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}}},"/api/v1/links/{id}/routes/{routeId}/conditions/{childId}":{"patch":{"operationId":"updateRouteCondition","summary":"Partially update a route condition (childId). Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_update_route_condition","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"childId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string","enum":["COUNTRY","DEVICE_PROFILE","OS","USER_AGENT","LANGUAGE","REFERRER_DOMAIN"]},"operator":{"type":"string","enum":["IN","NOT_IN","EQUALS","REGEX"]},"valueKey":{"type":"string","minLength":1},"valueJson":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}},"delete":{"operationId":"deleteRouteCondition","summary":"Permanently delete a route condition (childId). Requires scope links:delete. Irreversible: confirm with the user before calling. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:delete"],"x-mcp-tool-name":"link_delete_route_condition","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"childId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"204":{"description":"Resource deleted"},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/{id}/routes/{routeId}/targets":{"get":{"operationId":"listRouteTargets","summary":"List the target items of a route (tree or board items the route points to). Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_list_route_targets","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"routeId":{"type":"string"},"itemId":{"type":"string"},"required":{"type":"boolean"}},"required":["routeId","itemId"],"additionalProperties":{}}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"post":{"operationId":"createRouteTarget","summary":"Attach a target item to a route. itemId is required; required marks it mandatory. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_create_route_target","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"201":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"routeId":{"type":"string"},"itemId":{"type":"string"},"required":{"type":"boolean"}},"required":["routeId","itemId"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"itemId":{"type":"string","minLength":1},"required":{"type":"boolean"}},"required":["itemId"],"additionalProperties":false}}}}}},"/api/v1/links/{id}/routes/{routeId}/targets/{childId}":{"patch":{"operationId":"updateRouteTarget","summary":"Update a route target (childId), e.g. its required flag. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_update_route_target","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"childId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"routeId":{"type":"string"},"itemId":{"type":"string"},"required":{"type":"boolean"}},"required":["routeId","itemId"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"required":{"type":"boolean"}},"additionalProperties":false}}}}},"delete":{"operationId":"deleteRouteTarget","summary":"Permanently detach a target from a route (childId). Requires scope links:delete. Irreversible: confirm with the user before calling. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:delete"],"x-mcp-tool-name":"link_delete_route_target","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"childId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"204":{"description":"Resource deleted"},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/{id}/routes/{routeId}/features":{"get":{"operationId":"listRouteFeatures","summary":"List the features of a route: PASSWORD, EXPIRATION_DATE, LIMIT, UTM or REDIRECT_DELAY. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_list_route_features","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"post":{"operationId":"createRouteFeature","summary":"Enable a feature on a route. type is required; config holds its settings (for example an expiry date or a visit limit). Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_create_route_feature","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"201":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string","enum":["PASSWORD","EXPIRATION_DATE","LIMIT","UTM","REDIRECT_DELAY"]},"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["type"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}}},"/api/v1/links/{id}/routes/{routeId}/features/{childId}":{"patch":{"operationId":"updateRouteFeature","summary":"Partially update a route feature (childId): enabled flag or config. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_update_route_feature","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"childId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string","enum":["PASSWORD","EXPIRATION_DATE","LIMIT","UTM","REDIRECT_DELAY"]},"enabled":{"type":"boolean"},"config":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}},"delete":{"operationId":"deleteRouteFeature","summary":"Permanently remove a feature from a route (childId). Requires scope links:delete. Irreversible: confirm with the user before calling. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:delete"],"x-mcp-tool-name":"link_delete_route_feature","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"routeId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"childId","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"204":{"description":"Resource deleted"},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/{id}/qr":{"get":{"operationId":"getQr","summary":"Get a link's QR state: whether a QR exists (isQrCreated) and its payload. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_get_qr","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"isQrCreated":{"type":"boolean"},"qrPayload":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},{"type":"null"}]}},"required":["id","isQrCreated","qrPayload"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{},"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}},"patch":{"operationId":"updateQr","summary":"Set a link's QR payload (design and content options); this also marks the QR as created. Requires scope links:write. Requires idempotencyKey; reuse the same key to retry safely.","x-required-scopes":["links:write"],"x-mcp-tool-name":"link_update_qr","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","minLength":1,"maxLength":255,"description":"Required by MCP tools; recommended for HTTP retry safety."}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"domainId":{"type":"string"},"kind":{"type":"string","enum":["DIRECT","TREE","TREE_ITEM","BOARD","BOARD_ITEM"]},"routingMode":{"type":"string","enum":["SIMPLE","ADVANCED"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"imageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"routes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"additionalProperties":{}}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"payload":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}},"required":["payload"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}}}}},"/api/v1/links/{id}/analytics":{"get":{"operationId":"getAnalytics","summary":"Get a link's click analytics for the last days (1-365). Returns visit totals and breakdowns such as country, device and referrer. Requires scope analytics:read.","x-required-scopes":["analytics:read"],"x-mcp-tool-name":"link_get_analytics","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1,"maxLength":256,"pattern":"^[A-Za-z0-9_-]+$"}},{"name":"days","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"integer","minimum":1,"maximum":365}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"linkId":{"type":"string"},"range":{"type":"object","properties":{"days":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"from":{"type":"string"},"to":{"type":"string"}},"required":["days","from","to"],"additionalProperties":false},"totals":{"type":"object","properties":{"events":{"type":"number","minimum":0},"visitors":{"type":"number","minimum":0}},"required":["events","visitors"],"additionalProperties":false},"eventsByType":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"count":{"type":"number","minimum":0}},"required":["type","count"],"additionalProperties":false}}},"required":["linkId","range","totals","eventsByType"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/domains":{"get":{"operationId":"listDomains","summary":"List the domains the user can read, including their short-link domains. Requires scope domains:read.","x-required-scopes":["domains:read"],"x-mcp-tool-name":"link_list_domains","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"type":{"type":"string"},"isVerified":{"type":"boolean"},"approvalStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"serviceTargets":{"type":"array","items":{"type":"string"}}},"required":["id","hostname","type","isVerified","approvalStatus","isPrimary"],"additionalProperties":{}}},"userDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"type":{"type":"string"},"isVerified":{"type":"boolean"},"approvalStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"serviceTargets":{"type":"array","items":{"type":"string"}}},"required":["id","hostname","type","isVerified","approvalStatus","isPrimary"],"additionalProperties":{}}},"systemDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"type":{"type":"string"},"isVerified":{"type":"boolean"},"approvalStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"serviceTargets":{"type":"array","items":{"type":"string"}}},"required":["id","hostname","type","isVerified","approvalStatus","isPrimary"],"additionalProperties":{}}},"defaultDomain":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"type":{"type":"string"},"isVerified":{"type":"boolean"},"approvalStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"serviceTargets":{"type":"array","items":{"type":"string"}}},"required":["id","hostname","type","isVerified","approvalStatus","isPrimary"],"additionalProperties":{}},{"type":"null"}]}},"required":["domains","userDomains","systemDomains","defaultDomain"],"additionalProperties":false},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/domains/default":{"get":{"operationId":"getDefaultDomain","summary":"Get the user's default short-link domain (null if none is set). Requires scope domains:read.","x-required-scopes":["domains:read"],"x-mcp-tool-name":"link_get_default_domain","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"type":{"type":"string"},"isVerified":{"type":"boolean"},"approvalStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"serviceTargets":{"type":"array","items":{"type":"string"}}},"required":["id","hostname","type","isVerified","approvalStatus","isPrimary"],"additionalProperties":{}},{"type":"null"}]},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/domains/eligible":{"get":{"operationId":"listEligibleDomains","summary":"List the domains the user may create links on right now (active and within plan limits). Requires scope domains:read.","x-required-scopes":["domains:read"],"x-mcp-tool-name":"link_list_eligible_domains","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"type":{"type":"string"},"isVerified":{"type":"boolean"},"approvalStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"serviceTargets":{"type":"array","items":{"type":"string"}}},"required":["id","hostname","type","isVerified","approvalStatus","isPrimary"],"additionalProperties":{}}},"userDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"type":{"type":"string"},"isVerified":{"type":"boolean"},"approvalStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"serviceTargets":{"type":"array","items":{"type":"string"}}},"required":["id","hostname","type","isVerified","approvalStatus","isPrimary"],"additionalProperties":{}}},"systemDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"type":{"type":"string"},"isVerified":{"type":"boolean"},"approvalStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"serviceTargets":{"type":"array","items":{"type":"string"}}},"required":["id","hostname","type","isVerified","approvalStatus","isPrimary"],"additionalProperties":{}}},"defaultDomain":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"},"type":{"type":"string"},"isVerified":{"type":"boolean"},"approvalStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"serviceTargets":{"type":"array","items":{"type":"string"}}},"required":["id","hostname","type","isVerified","approvalStatus","isPrimary"],"additionalProperties":{}},{"type":"null"}]}},"required":["domains","userDomains","systemDomains","defaultDomain"],"additionalProperties":false},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/platform-catalog":{"get":{"operationId":"getPlatformCatalog","summary":"List the platform catalog (device profiles, browsers, operating systems) usable in route targeting and conditions. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_get_platform_catalog","security":[{"bearerAuth":[]}],"parameters":[],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"key":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":{}}}},"required":["id","key","items"],"additionalProperties":{}}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}},"/api/v1/links/links/slug-availability":{"get":{"operationId":"checkSlugAvailability","summary":"Check whether a slug is free. slug is required; pass domainId to check on one domain and excludeLinkId when renaming an existing link. Call this before createLink with a custom slug. Requires scope links:read.","x-required-scopes":["links:read"],"x-mcp-tool-name":"link_check_slug_availability","security":[{"bearerAuth":[]}],"parameters":[{"name":"slug","in":"query","required":true,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1}},{"name":"domainId","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1}},{"name":"excludeLinkId","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1}},{"name":"excludeTreeId","in":"query","required":false,"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","minLength":1}}],"responses":{"200":{"description":"Successful canonical response","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"data":{"type":"object","properties":{"available":{"type":"boolean"},"reason":{"type":"string"}},"required":["available"],"additionalProperties":{}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"limit":{"type":"integer","minimum":1,"maximum":100},"hasNext":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":{}}},"required":["data"],"additionalProperties":{}}}}},"default":{"description":"Request failed","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"statusCode":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"requestId":{"type":"string"}},"required":["error","statusCode","requestId"],"additionalProperties":{}}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"bk_live_* developer API key or delegated product API token"}}}}