{
  "service": "linkly",
  "displayName": "Linkly",
  "categories": [
    "Marketing",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "LINKLY_API_KEY",
      "description": "Linkly API key used as a Bearer token. Generate or manage API keys under Settings > API Keys in Linkly, or see https://linklyhq.com/url-shortener-api-reference.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://linklyhq.com",
  "actions": [
    {
      "id": "linkly.create_link",
      "service": "linkly",
      "name": "create_link",
      "description": "Create a Linkly short link in a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Linkly workspace ID."
          },
          "url": {
            "type": "string",
            "description": "The destination URL.",
            "format": "uri"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string",
                "description": "Custom domain without a trailing slash."
              },
              {
                "type": "null"
              }
            ]
          },
          "domain_id": {
            "type": "integer",
            "description": "Domain ID, used as an alternative to domain."
          },
          "slug": {
            "anyOf": [
              {
                "type": "string",
                "description": "Custom slug, starting with /.",
                "pattern": "^/"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "description": "Nickname for the link."
              },
              {
                "type": "null"
              }
            ]
          },
          "note": {
            "anyOf": [
              {
                "type": "string",
                "description": "Private note about this link."
              },
              {
                "type": "null"
              }
            ]
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether the link is active."
          },
          "forward_params": {
            "type": "boolean",
            "description": "Whether to forward query parameters to the destination."
          },
          "utm_source": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM source value."
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_medium": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM medium value."
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_campaign": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM campaign value."
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_term": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM term value."
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_content": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM content value."
              },
              {
                "type": "null"
              }
            ]
          },
          "expiry_datetime": {
            "anyOf": [
              {
                "type": "string",
                "description": "Link expiration date and time.",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "expiry_destination": {
            "anyOf": [
              {
                "type": "string",
                "description": "Redirect URL used after expiry.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "expiry_clicks": {
            "anyOf": [
              {
                "type": "integer",
                "description": "Expire the link after this many clicks."
              },
              {
                "type": "null"
              }
            ]
          },
          "public_analytics": {
            "type": "boolean",
            "description": "Whether analytics are publicly accessible."
          },
          "block_bots": {
            "type": "boolean",
            "description": "Whether to block bot traffic."
          },
          "hide_referrer": {
            "type": "boolean",
            "description": "Whether to hide the referrer from the destination."
          },
          "cloaking": {
            "type": "boolean",
            "description": "Whether link cloaking is enabled."
          },
          "gtm_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Google Tag Manager ID."
              },
              {
                "type": "null"
              }
            ]
          },
          "ga4_tag_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Google Analytics 4 tag ID."
              },
              {
                "type": "null"
              }
            ]
          },
          "fb_pixel_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Facebook Pixel ID."
              },
              {
                "type": "null"
              }
            ]
          },
          "tiktok_pixel_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "TikTok Pixel ID."
              },
              {
                "type": "null"
              }
            ]
          },
          "og_title": {
            "anyOf": [
              {
                "type": "string",
                "description": "Open Graph title."
              },
              {
                "type": "null"
              }
            ]
          },
          "og_description": {
            "anyOf": [
              {
                "type": "string",
                "description": "Open Graph description."
              },
              {
                "type": "null"
              }
            ]
          },
          "og_image": {
            "anyOf": [
              {
                "type": "string",
                "description": "Open Graph image URL.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "head_tags": {
            "anyOf": [
              {
                "type": "string",
                "description": "Custom HTML tags for the document head."
              },
              {
                "type": "null"
              }
            ]
          },
          "body_tags": {
            "anyOf": [
              {
                "type": "string",
                "description": "Custom HTML tags for the document body."
              },
              {
                "type": "null"
              }
            ]
          },
          "linkify_words": {
            "anyOf": [
              {
                "type": "string",
                "description": "Words to linkify."
              },
              {
                "type": "null"
              }
            ]
          },
          "replacements": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL parameter replacements."
              },
              {
                "type": "null"
              }
            ]
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "what": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The rule condition type."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "matches": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The value matched by the rule."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The destination URL used when the rule matches.",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "percentage": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The percentage assigned to this rule."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "description": "A Linkly redirect rule."
            },
            "description": "Redirect rules for the link."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "url"
        ],
        "description": "Input for creating a Linkly link."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Link ID."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "workspace_id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Workspace ID."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "type": "string",
                "description": "Destination URL."
              },
              "full_url": {
                "type": "string",
                "description": "Full shortened URL."
              },
              "domain": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Short link domain."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "slug": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Short link slug."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Link nickname."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "note": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Private note about this link."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "enabled": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether the link is active."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "deleted": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether the link is deleted."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "clicks_total": {
                "type": "integer",
                "description": "Total number of clicks."
              },
              "clicks_today": {
                "type": "integer",
                "description": "Number of clicks today."
              },
              "clicks_thirty_days": {
                "type": "integer",
                "description": "Number of clicks in the last 30 days."
              },
              "sparkline": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "description": "A sparkline point."
                },
                "description": "Recent click sparkline values."
              },
              "utm_source": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM source value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_medium": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM medium value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_campaign": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM campaign value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_term": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM term value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_content": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM content value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "forward_params": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether query parameters are forwarded."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "rules": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "what": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The rule condition type."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "matches": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The value matched by the rule."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "url": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The destination URL used when the rule matches."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "percentage": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "description": "The percentage assigned to this rule."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": true,
                      "description": "A redirect rule returned by Linkly."
                    },
                    "description": "Redirect rules returned by Linkly."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A Linkly link resource."
          }
        },
        "additionalProperties": false,
        "required": [
          "link"
        ],
        "description": "The Linkly link create response."
      }
    },
    {
      "id": "linkly.delete_link",
      "service": "linkly",
      "name": "delete_link",
      "description": "Delete a Linkly short link from a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Linkly workspace ID."
          },
          "id": {
            "type": "integer",
            "description": "The Linkly link ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "id"
        ],
        "description": "Input for deleting a Linkly link."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Delete result message returned by Linkly."
          }
        },
        "additionalProperties": false,
        "required": [
          "message"
        ],
        "description": "The Linkly delete response."
      }
    },
    {
      "id": "linkly.get_link",
      "service": "linkly",
      "name": "get_link",
      "description": "Get a Linkly link by ID, optionally scoped to a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The Linkly link ID."
          },
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Linkly workspace ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input for getting a Linkly link."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Link ID."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "workspace_id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Workspace ID."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "type": "string",
                "description": "Destination URL."
              },
              "full_url": {
                "type": "string",
                "description": "Full shortened URL."
              },
              "domain": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Short link domain."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "slug": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Short link slug."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Link nickname."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "note": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Private note about this link."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "enabled": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether the link is active."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "deleted": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether the link is deleted."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "clicks_total": {
                "type": "integer",
                "description": "Total number of clicks."
              },
              "clicks_today": {
                "type": "integer",
                "description": "Number of clicks today."
              },
              "clicks_thirty_days": {
                "type": "integer",
                "description": "Number of clicks in the last 30 days."
              },
              "sparkline": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "description": "A sparkline point."
                },
                "description": "Recent click sparkline values."
              },
              "utm_source": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM source value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_medium": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM medium value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_campaign": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM campaign value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_term": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM term value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_content": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM content value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "forward_params": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether query parameters are forwarded."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "rules": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "what": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The rule condition type."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "matches": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The value matched by the rule."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "url": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The destination URL used when the rule matches."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "percentage": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "description": "The percentage assigned to this rule."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": true,
                      "description": "A redirect rule returned by Linkly."
                    },
                    "description": "Redirect rules returned by Linkly."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A Linkly link resource."
          }
        },
        "additionalProperties": false,
        "required": [
          "link"
        ],
        "description": "The Linkly link response."
      }
    },
    {
      "id": "linkly.list_links",
      "service": "linkly",
      "name": "list_links",
      "description": "List links in a Linkly workspace with optional search, filters, and pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Linkly workspace ID."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search query."
          },
          "page": {
            "type": "integer",
            "description": "Page number."
          },
          "page_size": {
            "type": "integer",
            "description": "Number of links to return."
          },
          "sort_by": {
            "type": "string",
            "minLength": 1,
            "description": "Field used to sort links."
          },
          "sort_dir": {
            "type": "string",
            "enum": [
              "desc",
              "asc"
            ],
            "description": "Sort direction."
          },
          "filter": {
            "type": "object",
            "properties": {
              "domain": {
                "type": "string",
                "minLength": 1,
                "description": "Filter links by domain."
              },
              "slug": {
                "type": "string",
                "minLength": 1,
                "description": "Filter links by slug."
              },
              "utm_campaign": {
                "type": "string",
                "minLength": 1,
                "description": "Filter links by UTM campaign."
              },
              "utm_content": {
                "type": "string",
                "minLength": 1,
                "description": "Filter links by UTM content."
              },
              "utm_medium": {
                "type": "string",
                "minLength": 1,
                "description": "Filter links by UTM medium."
              },
              "utm_source": {
                "type": "string",
                "minLength": 1,
                "description": "Filter links by UTM source."
              },
              "utm_term": {
                "type": "string",
                "minLength": 1,
                "description": "Filter links by UTM term."
              }
            },
            "additionalProperties": false,
            "description": "Exact-match filters for listing Linkly workspace links."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspace_id"
        ],
        "description": "Input for listing Linkly workspace links."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Link ID."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "workspace_id": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Workspace ID."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "type": "string",
                  "description": "Destination URL."
                },
                "full_url": {
                  "type": "string",
                  "description": "Full shortened URL."
                },
                "domain": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Short link domain."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "slug": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Short link slug."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Link nickname."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "note": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Private note about this link."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "enabled": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether the link is active."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "deleted": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether the link is deleted."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "clicks_total": {
                  "type": "integer",
                  "description": "Total number of clicks."
                },
                "clicks_today": {
                  "type": "integer",
                  "description": "Number of clicks today."
                },
                "clicks_thirty_days": {
                  "type": "integer",
                  "description": "Number of clicks in the last 30 days."
                },
                "sparkline": {
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "description": "A sparkline point."
                  },
                  "description": "Recent click sparkline values."
                },
                "utm_source": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "UTM source value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "utm_medium": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "UTM medium value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "utm_campaign": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "UTM campaign value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "utm_term": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "UTM term value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "utm_content": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "UTM content value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "forward_params": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether query parameters are forwarded."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "rules": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "what": {
                            "anyOf": [
                              {
                                "type": "string",
                                "description": "The rule condition type."
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "matches": {
                            "anyOf": [
                              {
                                "type": "string",
                                "description": "The value matched by the rule."
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "url": {
                            "anyOf": [
                              {
                                "type": "string",
                                "description": "The destination URL used when the rule matches."
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "percentage": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "description": "The percentage assigned to this rule."
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "additionalProperties": true,
                        "description": "A redirect rule returned by Linkly."
                      },
                      "description": "Redirect rules returned by Linkly."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A Linkly link resource."
            },
            "description": "Links returned by Linkly."
          },
          "page_number": {
            "type": "integer",
            "description": "Current page number."
          },
          "page_size": {
            "type": "integer",
            "description": "Current page size."
          },
          "total_entries": {
            "type": "integer",
            "description": "Number of entries matching the query."
          },
          "total_pages": {
            "type": "integer",
            "description": "Total number of pages."
          },
          "total_rows": {
            "type": "integer",
            "description": "Total number of rows."
          },
          "workspace_link_count": {
            "type": "integer",
            "description": "Total number of links in the workspace."
          }
        },
        "additionalProperties": false,
        "required": [
          "links"
        ],
        "description": "The Linkly paginated link list."
      }
    },
    {
      "id": "linkly.list_workspaces",
      "service": "linkly",
      "name": "list_workspaces",
      "description": "List Linkly workspaces available to the authenticated API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input for listing Linkly workspaces."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "workspaces": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Workspace ID."
                },
                "name": {
                  "type": "string",
                  "description": "Workspace name."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name"
              ],
              "description": "A Linkly workspace."
            },
            "description": "Workspaces returned by Linkly."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaces"
        ],
        "description": "The Linkly workspace list."
      }
    },
    {
      "id": "linkly.update_link",
      "service": "linkly",
      "name": "update_link",
      "description": "Update a Linkly short link in a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspace_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Linkly workspace ID."
          },
          "id": {
            "type": "integer",
            "description": "The Linkly link ID."
          },
          "url": {
            "type": "string",
            "description": "The destination URL.",
            "format": "uri"
          },
          "domain": {
            "anyOf": [
              {
                "type": "string",
                "description": "Custom domain without a trailing slash."
              },
              {
                "type": "null"
              }
            ]
          },
          "domain_id": {
            "type": "integer",
            "description": "Domain ID, used as an alternative to domain."
          },
          "slug": {
            "anyOf": [
              {
                "type": "string",
                "description": "Custom slug, starting with /.",
                "pattern": "^/"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "anyOf": [
              {
                "type": "string",
                "description": "Nickname for the link."
              },
              {
                "type": "null"
              }
            ]
          },
          "note": {
            "anyOf": [
              {
                "type": "string",
                "description": "Private note about this link."
              },
              {
                "type": "null"
              }
            ]
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether the link is active."
          },
          "forward_params": {
            "type": "boolean",
            "description": "Whether to forward query parameters to the destination."
          },
          "utm_source": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM source value."
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_medium": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM medium value."
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_campaign": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM campaign value."
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_term": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM term value."
              },
              {
                "type": "null"
              }
            ]
          },
          "utm_content": {
            "anyOf": [
              {
                "type": "string",
                "description": "UTM content value."
              },
              {
                "type": "null"
              }
            ]
          },
          "expiry_datetime": {
            "anyOf": [
              {
                "type": "string",
                "description": "Link expiration date and time.",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "expiry_destination": {
            "anyOf": [
              {
                "type": "string",
                "description": "Redirect URL used after expiry.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "expiry_clicks": {
            "anyOf": [
              {
                "type": "integer",
                "description": "Expire the link after this many clicks."
              },
              {
                "type": "null"
              }
            ]
          },
          "public_analytics": {
            "type": "boolean",
            "description": "Whether analytics are publicly accessible."
          },
          "block_bots": {
            "type": "boolean",
            "description": "Whether to block bot traffic."
          },
          "hide_referrer": {
            "type": "boolean",
            "description": "Whether to hide the referrer from the destination."
          },
          "cloaking": {
            "type": "boolean",
            "description": "Whether link cloaking is enabled."
          },
          "gtm_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Google Tag Manager ID."
              },
              {
                "type": "null"
              }
            ]
          },
          "ga4_tag_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Google Analytics 4 tag ID."
              },
              {
                "type": "null"
              }
            ]
          },
          "fb_pixel_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "Facebook Pixel ID."
              },
              {
                "type": "null"
              }
            ]
          },
          "tiktok_pixel_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "TikTok Pixel ID."
              },
              {
                "type": "null"
              }
            ]
          },
          "og_title": {
            "anyOf": [
              {
                "type": "string",
                "description": "Open Graph title."
              },
              {
                "type": "null"
              }
            ]
          },
          "og_description": {
            "anyOf": [
              {
                "type": "string",
                "description": "Open Graph description."
              },
              {
                "type": "null"
              }
            ]
          },
          "og_image": {
            "anyOf": [
              {
                "type": "string",
                "description": "Open Graph image URL.",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "head_tags": {
            "anyOf": [
              {
                "type": "string",
                "description": "Custom HTML tags for the document head."
              },
              {
                "type": "null"
              }
            ]
          },
          "body_tags": {
            "anyOf": [
              {
                "type": "string",
                "description": "Custom HTML tags for the document body."
              },
              {
                "type": "null"
              }
            ]
          },
          "linkify_words": {
            "anyOf": [
              {
                "type": "string",
                "description": "Words to linkify."
              },
              {
                "type": "null"
              }
            ]
          },
          "replacements": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL parameter replacements."
              },
              {
                "type": "null"
              }
            ]
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "what": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The rule condition type."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "matches": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The value matched by the rule."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The destination URL used when the rule matches.",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "percentage": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The percentage assigned to this rule."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "description": "A Linkly redirect rule."
            },
            "description": "Redirect rules for the link."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "id"
        ],
        "description": "Input for updating a Linkly link.",
        "anyOf": [
          {
            "required": [
              "url"
            ]
          },
          {
            "required": [
              "domain"
            ]
          },
          {
            "required": [
              "domain_id"
            ]
          },
          {
            "required": [
              "slug"
            ]
          },
          {
            "required": [
              "name"
            ]
          },
          {
            "required": [
              "note"
            ]
          },
          {
            "required": [
              "enabled"
            ]
          },
          {
            "required": [
              "forward_params"
            ]
          },
          {
            "required": [
              "utm_source"
            ]
          },
          {
            "required": [
              "utm_medium"
            ]
          },
          {
            "required": [
              "utm_campaign"
            ]
          },
          {
            "required": [
              "utm_term"
            ]
          },
          {
            "required": [
              "utm_content"
            ]
          },
          {
            "required": [
              "expiry_datetime"
            ]
          },
          {
            "required": [
              "expiry_destination"
            ]
          },
          {
            "required": [
              "expiry_clicks"
            ]
          },
          {
            "required": [
              "public_analytics"
            ]
          },
          {
            "required": [
              "block_bots"
            ]
          },
          {
            "required": [
              "hide_referrer"
            ]
          },
          {
            "required": [
              "cloaking"
            ]
          },
          {
            "required": [
              "gtm_id"
            ]
          },
          {
            "required": [
              "ga4_tag_id"
            ]
          },
          {
            "required": [
              "fb_pixel_id"
            ]
          },
          {
            "required": [
              "tiktok_pixel_id"
            ]
          },
          {
            "required": [
              "og_title"
            ]
          },
          {
            "required": [
              "og_description"
            ]
          },
          {
            "required": [
              "og_image"
            ]
          },
          {
            "required": [
              "head_tags"
            ]
          },
          {
            "required": [
              "body_tags"
            ]
          },
          {
            "required": [
              "linkify_words"
            ]
          },
          {
            "required": [
              "replacements"
            ]
          },
          {
            "required": [
              "rules"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Link ID."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "workspace_id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Workspace ID."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "type": "string",
                "description": "Destination URL."
              },
              "full_url": {
                "type": "string",
                "description": "Full shortened URL."
              },
              "domain": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Short link domain."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "slug": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Short link slug."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Link nickname."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "note": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Private note about this link."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "enabled": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether the link is active."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "deleted": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether the link is deleted."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "clicks_total": {
                "type": "integer",
                "description": "Total number of clicks."
              },
              "clicks_today": {
                "type": "integer",
                "description": "Number of clicks today."
              },
              "clicks_thirty_days": {
                "type": "integer",
                "description": "Number of clicks in the last 30 days."
              },
              "sparkline": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "description": "A sparkline point."
                },
                "description": "Recent click sparkline values."
              },
              "utm_source": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM source value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_medium": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM medium value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_campaign": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM campaign value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_term": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM term value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "utm_content": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "UTM content value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "forward_params": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether query parameters are forwarded."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "rules": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "what": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The rule condition type."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "matches": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The value matched by the rule."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "url": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The destination URL used when the rule matches."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "percentage": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "description": "The percentage assigned to this rule."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": true,
                      "description": "A redirect rule returned by Linkly."
                    },
                    "description": "Redirect rules returned by Linkly."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A Linkly link resource."
          }
        },
        "additionalProperties": false,
        "required": [
          "link"
        ],
        "description": "The Linkly link update response."
      }
    }
  ]
}
