{
  "service": "l2s",
  "displayName": "L2S",
  "categories": [
    "Marketing",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "l2s_api_key",
      "description": "L2S API key used with the Authorization Bearer header. Create or manage it from the L2S integrations page: https://app.l2s.is/integrations."
    }
  ],
  "homepageUrl": "https://www.l2s.is",
  "actions": [
    {
      "id": "l2s.get_url_details",
      "service": "l2s",
      "name": "get_url_details",
      "description": "Get the stored details for one shortened URL in L2S.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The L2S URL ID path parameter."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for retrieving one L2S shortened URL."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Whether the L2S request succeeded."
          },
          "response": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string",
                "description": "The message returned by L2S."
              },
              "data": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The L2S response data payload."
              }
            },
            "additionalProperties": false,
            "required": [
              "message"
            ],
            "description": "The response envelope returned by L2S."
          }
        },
        "additionalProperties": false,
        "description": "The standard L2S success response envelope."
      }
    },
    {
      "id": "l2s.shorten_url",
      "service": "l2s",
      "name": "shorten_url",
      "description": "Create a shortened URL in L2S with optional custom key, UTM tags, and title.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "minLength": 1,
            "description": "The URL to be shortened or stored in L2S."
          },
          "customKey": {
            "type": "string",
            "minLength": 1,
            "description": "Custom key for the shortened URL."
          },
          "utmSource": {
            "type": "string",
            "minLength": 1,
            "description": "UTM source parameter."
          },
          "utmMedium": {
            "type": "string",
            "minLength": 1,
            "description": "UTM medium parameter."
          },
          "utmCampaign": {
            "type": "string",
            "minLength": 1,
            "description": "UTM campaign parameter."
          },
          "utmTerm": {
            "type": "string",
            "minLength": 1,
            "description": "UTM term parameter."
          },
          "utmContent": {
            "type": "string",
            "minLength": 1,
            "description": "UTM content parameter."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Title for the shortened URL."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One tag associated with the shortened URL."
            },
            "description": "The tags associated with the shortened URL."
          }
        },
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "description": "The input payload for creating a shortened URL in L2S."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Whether the L2S request succeeded."
          },
          "response": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string",
                "description": "The message returned by L2S."
              },
              "data": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The L2S response data payload."
              }
            },
            "additionalProperties": false,
            "required": [
              "message"
            ],
            "description": "The response envelope returned by L2S."
          }
        },
        "additionalProperties": false,
        "description": "The standard L2S success response envelope."
      }
    },
    {
      "id": "l2s.update_url_details",
      "service": "l2s",
      "name": "update_url_details",
      "description": "Update the stored details for one shortened URL in L2S.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The L2S URL ID path parameter."
          },
          "url": {
            "type": "string",
            "minLength": 1,
            "description": "The URL to be shortened or stored in L2S."
          },
          "customKey": {
            "type": "string",
            "minLength": 1,
            "description": "Custom key for the shortened URL."
          },
          "utmSource": {
            "type": "string",
            "minLength": 1,
            "description": "UTM source parameter."
          },
          "utmMedium": {
            "type": "string",
            "minLength": 1,
            "description": "UTM medium parameter."
          },
          "utmCampaign": {
            "type": "string",
            "minLength": 1,
            "description": "UTM campaign parameter."
          },
          "utmTerm": {
            "type": "string",
            "minLength": 1,
            "description": "UTM term parameter."
          },
          "utmContent": {
            "type": "string",
            "minLength": 1,
            "description": "UTM content parameter."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Title for the shortened URL."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One tag associated with the shortened URL."
            },
            "description": "The tags associated with the shortened URL."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "url"
        ],
        "description": "The input payload for updating one L2S shortened URL."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Whether the L2S request succeeded."
          },
          "response": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string",
                "description": "The message returned by L2S."
              },
              "data": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The L2S response data payload."
              }
            },
            "additionalProperties": false,
            "required": [
              "message"
            ],
            "description": "The response envelope returned by L2S."
          }
        },
        "additionalProperties": false,
        "description": "The standard L2S success response envelope."
      }
    }
  ]
}
