{
  "service": "spider",
  "displayName": "Spider Cloud",
  "categories": [
    "Data",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "SPIDER_API_KEY",
      "description": "Spider Cloud API key sent as a Bearer token. Create or manage keys at https://spider.cloud/api-keys."
    }
  ],
  "homepageUrl": "https://spider.cloud",
  "actions": [
    {
      "id": "spider.get_credits",
      "service": "spider",
      "name": "get_credits",
      "description": "Get the available credits for the connected Spider Cloud account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to get Spider Cloud credits."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "The JSON payload returned by Spider Cloud."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "The normalized Spider Cloud response."
      }
    },
    {
      "id": "spider.get_links",
      "service": "spider",
      "name": "get_links",
      "description": "Extract links from one public URL with Spider Cloud.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The public URL whose links Spider Cloud should extract.",
            "format": "uri"
          },
          "request": {
            "type": "string",
            "enum": [
              "http",
              "browser",
              "chrome",
              "smart"
            ],
            "description": "The retrieval engine Spider Cloud should use."
          },
          "respect_robots": {
            "type": "boolean",
            "description": "Whether Spider Cloud should respect the target site's robots rules."
          },
          "cache": {
            "type": "boolean",
            "description": "Whether Spider Cloud may use a cached response."
          },
          "request_timeout": {
            "type": "integer",
            "minimum": 1,
            "description": "The upstream page request timeout in milliseconds."
          }
        },
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "description": "Input for extracting links from one public URL with Spider Cloud."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "The JSON payload returned by Spider Cloud."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "The normalized Spider Cloud response."
      }
    },
    {
      "id": "spider.scrape",
      "service": "spider",
      "name": "scrape",
      "description": "Scrape one public URL with Spider Cloud and return its JSON response.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The public URL Spider Cloud should scrape.",
            "format": "uri"
          },
          "request": {
            "type": "string",
            "enum": [
              "http",
              "browser",
              "chrome",
              "smart"
            ],
            "description": "The retrieval engine Spider Cloud should use."
          },
          "return_format": {
            "type": "string",
            "enum": [
              "raw",
              "text",
              "html2text",
              "markdown",
              "commonmark",
              "xml",
              "empty"
            ],
            "description": "The JSON-compatible page content format to return."
          },
          "readability": {
            "type": "boolean",
            "description": "Whether Spider Cloud should apply readability processing."
          },
          "metadata": {
            "type": "boolean",
            "description": "Whether Spider Cloud should include page metadata."
          },
          "return_page_links": {
            "type": "boolean",
            "description": "Whether Spider Cloud should include links found on the page."
          },
          "filter_output_main_only": {
            "type": "boolean",
            "description": "Whether Spider Cloud should keep only main-page content."
          },
          "respect_robots": {
            "type": "boolean",
            "description": "Whether Spider Cloud should respect the target site's robots rules."
          },
          "cache": {
            "type": "boolean",
            "description": "Whether Spider Cloud may use a cached response."
          },
          "request_timeout": {
            "type": "integer",
            "minimum": 1,
            "description": "The upstream page request timeout in milliseconds."
          },
          "delay": {
            "type": "integer",
            "minimum": 0,
            "description": "The delay in milliseconds before Spider Cloud captures page content."
          }
        },
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "description": "Input for scraping one public URL with Spider Cloud."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "The JSON payload returned by Spider Cloud."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "The normalized Spider Cloud response."
      }
    },
    {
      "id": "spider.search",
      "service": "spider",
      "name": "search",
      "description": "Search the web with Spider Cloud and optionally fetch result-page content.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "The web search query."
          },
          "search_limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of search results to retrieve."
          },
          "fetch_page_content": {
            "type": "boolean",
            "description": "Whether Spider Cloud should fetch content from each search result."
          },
          "location": {
            "type": "string",
            "minLength": 1,
            "description": "The location name used to localize search results."
          },
          "country": {
            "type": "string",
            "minLength": 2,
            "description": "The country code used to localize search results."
          },
          "language": {
            "type": "string",
            "minLength": 2,
            "description": "The language code used to localize search results."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The 1-indexed search result page to retrieve."
          },
          "request": {
            "type": "string",
            "enum": [
              "http",
              "browser",
              "chrome",
              "smart"
            ],
            "description": "The retrieval engine Spider Cloud should use."
          },
          "return_format": {
            "type": "string",
            "enum": [
              "raw",
              "text",
              "html2text",
              "markdown",
              "commonmark",
              "xml",
              "empty"
            ],
            "description": "The JSON-compatible page content format to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "search"
        ],
        "description": "Input for a Spider Cloud web search."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "description": "The JSON payload returned by Spider Cloud."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "The normalized Spider Cloud response."
      }
    }
  ]
}
