{
  "service": "rebrandly",
  "displayName": "Rebrandly",
  "categories": [
    "Marketing",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "REBRANDLY_API_KEY",
      "description": "Rebrandly API key sent with the apikey header. Create or view API keys in the Rebrandly dashboard: https://app.rebrandly.com/settings/api-keys."
    }
  ],
  "homepageUrl": "https://www.rebrandly.com",
  "actions": [
    {
      "id": "rebrandly.create_link",
      "service": "rebrandly",
      "name": "create_link",
      "description": "Create a Rebrandly branded short link in a workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "Workspace public ID used with the Rebrandly Workspace header."
          },
          "destination": {
            "type": "string",
            "description": "Target URL where the short link redirects.",
            "format": "uri"
          },
          "domainId": {
            "type": "string",
            "minLength": 1,
            "description": "Public ID of the Rebrandly domain."
          },
          "slashtag": {
            "type": "string",
            "minLength": 1,
            "description": "Custom path component for the link.",
            "pattern": "^[a-zA-Z0-9_-]+$"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Human-readable title for the link."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Link description, when the workspace supports link notes."
          }
        },
        "additionalProperties": false,
        "required": [
          "workspaceId",
          "destination"
        ],
        "description": "Input for creating a Rebrandly branded link."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Rebrandly branded short link."
          }
        },
        "additionalProperties": false,
        "description": "Created Rebrandly branded link."
      }
    },
    {
      "id": "rebrandly.delete_link",
      "service": "rebrandly",
      "name": "delete_link",
      "description": "Soft delete a Rebrandly branded short link.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "linkId": {
            "type": "string",
            "minLength": 1,
            "description": "Public ID of the Rebrandly branded link."
          },
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "Workspace public ID used with the Rebrandly Workspace header."
          }
        },
        "additionalProperties": false,
        "required": [
          "linkId"
        ],
        "description": "Input for deleting a Rebrandly branded link."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Deleted link public ID."
              },
              "status": {
                "type": "string",
                "description": "Status returned after the link is deleted."
              }
            },
            "additionalProperties": true,
            "description": "Rebrandly delete link response."
          }
        },
        "additionalProperties": false,
        "description": "Deleted Rebrandly branded link."
      }
    },
    {
      "id": "rebrandly.get_account",
      "service": "rebrandly",
      "name": "get_account",
      "description": "Get the authenticated Rebrandly account details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "account": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Account public ID."
              },
              "email": {
                "type": "string",
                "description": "Account email address.",
                "format": "email"
              },
              "fullName": {
                "type": "string",
                "description": "Full name of the account owner."
              },
              "avatarUrl": {
                "type": "string",
                "description": "Avatar URL for the account owner.",
                "format": "uri"
              },
              "createdAt": {
                "type": "string",
                "description": "Timestamp when the account was created.",
                "format": "date-time"
              },
              "subscription": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Subscription details returned by Rebrandly."
              }
            },
            "additionalProperties": true,
            "description": "Rebrandly account details."
          }
        },
        "additionalProperties": false,
        "description": "Authenticated Rebrandly account."
      }
    },
    {
      "id": "rebrandly.get_link",
      "service": "rebrandly",
      "name": "get_link",
      "description": "Get details for a Rebrandly branded short link.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "linkId": {
            "type": "string",
            "minLength": 1,
            "description": "Public ID of the Rebrandly branded link."
          },
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "Workspace public ID used with the Rebrandly Workspace header."
          }
        },
        "additionalProperties": false,
        "required": [
          "linkId"
        ],
        "description": "Rebrandly link lookup input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Rebrandly branded short link."
          }
        },
        "additionalProperties": false,
        "description": "Rebrandly branded link details."
      }
    },
    {
      "id": "rebrandly.list_domains",
      "service": "rebrandly",
      "name": "list_domains",
      "description": "List branded domains available to a Rebrandly workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "Workspace public ID used with the Rebrandly Workspace header."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Maximum number of results to return."
          },
          "orderBy": {
            "type": "string",
            "minLength": 1,
            "description": "Field used to sort domains."
          },
          "orderDir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort direction for the collection."
          },
          "last": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor for pagination, usually the last item ID from the previous page."
          },
          "active": {
            "type": "boolean",
            "description": "Whether to return only active or inactive domains."
          },
          "verified": {
            "type": "boolean",
            "description": "Whether to return only verified or unverified domains."
          },
          "type": {
            "type": "string",
            "enum": [
              "user",
              "service"
            ],
            "description": "Domain type filter."
          }
        },
        "additionalProperties": false,
        "description": "Filters for listing Rebrandly branded domains."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "domains": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Domain public ID."
                },
                "fullName": {
                  "type": "string",
                  "description": "Full domain name."
                },
                "topLevelDomain": {
                  "type": "string",
                  "description": "Top-level domain segment."
                },
                "type": {
                  "type": "string",
                  "description": "Domain type returned by Rebrandly."
                },
                "status": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Domain status details returned by Rebrandly."
                },
                "createdAt": {
                  "type": "string",
                  "description": "Timestamp when the domain was created.",
                  "format": "date-time"
                },
                "updatedAt": {
                  "type": "string",
                  "description": "Timestamp when the domain was last updated.",
                  "format": "date-time"
                }
              },
              "additionalProperties": true,
              "description": "Rebrandly branded domain."
            },
            "description": "Domains returned by Rebrandly."
          }
        },
        "additionalProperties": false,
        "description": "Rebrandly branded domain list."
      }
    },
    {
      "id": "rebrandly.list_links",
      "service": "rebrandly",
      "name": "list_links",
      "description": "List branded short links in a Rebrandly workspace.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "Workspace public ID used with the Rebrandly Workspace header."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Maximum number of results to return."
          },
          "orderBy": {
            "type": "string",
            "minLength": 1,
            "description": "Field used to sort links."
          },
          "orderDir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "Sort direction for the collection."
          },
          "last": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor for pagination, usually the last item ID from the previous page."
          },
          "domainId": {
            "type": "string",
            "minLength": 1,
            "description": "Public ID of the Rebrandly domain."
          },
          "favourite": {
            "type": "boolean",
            "description": "Whether to filter links by favourite status."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "Link status filter accepted by Rebrandly."
          }
        },
        "additionalProperties": false,
        "description": "Filters for listing Rebrandly links."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "links": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Rebrandly branded short link."
            },
            "description": "Links returned by Rebrandly."
          }
        },
        "additionalProperties": false,
        "description": "Rebrandly branded link list."
      }
    },
    {
      "id": "rebrandly.update_link",
      "service": "rebrandly",
      "name": "update_link",
      "description": "Update editable fields on a Rebrandly branded short link.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "linkId": {
            "type": "string",
            "minLength": 1,
            "description": "Public ID of the Rebrandly branded link."
          },
          "workspaceId": {
            "type": "string",
            "minLength": 1,
            "description": "Workspace public ID used with the Rebrandly Workspace header."
          },
          "destination": {
            "type": "string",
            "description": "Updated destination URL for the short link.",
            "format": "uri"
          },
          "slashtag": {
            "type": "string",
            "minLength": 1,
            "description": "Updated custom path component for the link.",
            "pattern": "^[a-zA-Z0-9_-]+$"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Updated human-readable title for the link."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Updated link description."
          }
        },
        "additionalProperties": false,
        "required": [
          "linkId"
        ],
        "description": "Input for updating a Rebrandly branded link.",
        "anyOf": [
          {
            "required": [
              "destination"
            ]
          },
          {
            "required": [
              "slashtag"
            ]
          },
          {
            "required": [
              "title"
            ]
          },
          {
            "required": [
              "description"
            ]
          }
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Rebrandly branded short link."
          }
        },
        "additionalProperties": false,
        "description": "Updated Rebrandly branded link."
      }
    }
  ]
}
