{
  "service": "webscraper_io",
  "displayName": "WebScraper.io",
  "categories": [
    "Data",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "WEBSCRAPER_IO_API_TOKEN",
      "description": "Web Scraper Cloud API token passed as the api_token query parameter. Get it from the Web Scraper Cloud API page after signing in: https://cloud.webscraper.io/api",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://webscraper.io/",
  "actions": [
    {
      "id": "webscraper_io.create_scraping_job",
      "service": "webscraper_io",
      "name": "create_scraping_job",
      "description": "Create a Web Scraper Cloud scraping job for one sitemap.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sitemap_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric sitemap ID to scrape."
          },
          "driver": {
            "type": "string",
            "enum": [
              "fast",
              "fulljs"
            ],
            "description": "The scraping driver to use for the job."
          },
          "page_load_delay": {
            "type": "integer",
            "minimum": 0,
            "description": "The page load delay in milliseconds for the scraping job."
          },
          "request_interval": {
            "type": "integer",
            "minimum": 0,
            "description": "The request interval in milliseconds for the scraping job."
          },
          "proxy": {
            "type": "string",
            "minLength": 1,
            "description": "The proxy value such as datacenter-us or residential-us for the scraping job."
          },
          "start_urls": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One start URL override."
            },
            "description": "The optional start URLs that override the sitemap start URLs for this job.",
            "minItems": 1
          },
          "custom_id": {
            "type": "string",
            "minLength": 1,
            "description": "The optional custom scraping job identifier included in webhook notifications."
          }
        },
        "additionalProperties": false,
        "required": [
          "sitemap_id"
        ],
        "description": "The input payload for creating one Web Scraper Cloud scraping job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric scraping job ID created by Web Scraper Cloud."
          },
          "custom_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "The custom scraping job identifier when provided."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "custom_id"
        ],
        "description": "The response returned after creating one Web Scraper Cloud scraping job."
      }
    },
    {
      "id": "webscraper_io.create_sitemap",
      "service": "webscraper_io",
      "name": "create_sitemap",
      "description": "Create a new Web Scraper Cloud sitemap from a sitemap JSON document.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string",
            "minLength": 1,
            "description": "The sitemap identifier inside the sitemap JSON."
          },
          "startUrl": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One sitemap start URL."
            },
            "description": "The sitemap start URLs used by Web Scraper Cloud.",
            "minItems": 1
          },
          "selectors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One selector object from the sitemap JSON."
            },
            "description": "The selector definitions included in the sitemap JSON.",
            "minItems": 1
          }
        },
        "additionalProperties": true,
        "required": [
          "_id",
          "startUrl",
          "selectors"
        ],
        "description": "The sitemap JSON document sent to or returned by Web Scraper Cloud."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric sitemap ID created by Web Scraper Cloud."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "The response returned after creating a Web Scraper Cloud sitemap."
      }
    },
    {
      "id": "webscraper_io.delete_scraping_job",
      "service": "webscraper_io",
      "name": "delete_scraping_job",
      "description": "Delete a Web Scraper Cloud scraping job by numeric scraping job ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "scraping_job_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric scraping job ID to delete."
          }
        },
        "additionalProperties": false,
        "required": [
          "scraping_job_id"
        ],
        "description": "The input payload for deleting one Web Scraper Cloud scraping job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Whether Web Scraper Cloud confirmed the scraping job deletion."
          }
        },
        "additionalProperties": false,
        "required": [
          "ok"
        ],
        "description": "The response returned after deleting one Web Scraper Cloud scraping job."
      }
    },
    {
      "id": "webscraper_io.delete_sitemap",
      "service": "webscraper_io",
      "name": "delete_sitemap",
      "description": "Delete a Web Scraper Cloud sitemap by numeric sitemap ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sitemap_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric sitemap ID to delete."
          }
        },
        "additionalProperties": false,
        "required": [
          "sitemap_id"
        ],
        "description": "The input payload for deleting one Web Scraper Cloud sitemap."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Whether Web Scraper Cloud confirmed the sitemap deletion."
          }
        },
        "additionalProperties": false,
        "required": [
          "ok"
        ],
        "description": "The response returned after deleting a Web Scraper Cloud sitemap."
      }
    },
    {
      "id": "webscraper_io.download_scraping_job_json",
      "service": "webscraper_io",
      "name": "download_scraping_job_json",
      "description": "Download one Web Scraper Cloud scraping job result in JSON Lines format.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "scraping_job_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric scraping job ID to download."
          }
        },
        "additionalProperties": false,
        "required": [
          "scraping_job_id"
        ],
        "description": "The input payload for downloading one Web Scraper Cloud scraping job result in JSON Lines format."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One parsed JSON Lines row returned by Web Scraper Cloud."
            },
            "description": "The parsed JSON objects returned from the JSON Lines export."
          },
          "row_count": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of parsed JSON rows returned by the export."
          }
        },
        "additionalProperties": false,
        "required": [
          "rows",
          "row_count"
        ],
        "description": "The response returned after downloading one Web Scraper Cloud scraping job result in JSON Lines format."
      }
    },
    {
      "id": "webscraper_io.get_account_info",
      "service": "webscraper_io",
      "name": "get_account_info",
      "description": "Get the current Web Scraper Cloud account profile for the connected API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for getting Web Scraper Cloud account info."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "anyOf": [
              {
                "type": "string",
                "description": "The account email address."
              },
              {
                "type": "null"
              }
            ]
          },
          "firstname": {
            "anyOf": [
              {
                "type": "string",
                "description": "The account first name."
              },
              {
                "type": "null"
              }
            ]
          },
          "lastname": {
            "anyOf": [
              {
                "type": "string",
                "description": "The account last name."
              },
              {
                "type": "null"
              }
            ]
          },
          "page_credits": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The remaining Web Scraper Cloud page credits."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw account object returned by Web Scraper Cloud."
          }
        },
        "additionalProperties": false,
        "required": [
          "email",
          "firstname",
          "lastname",
          "page_credits",
          "raw"
        ],
        "description": "The response returned for Web Scraper Cloud account info."
      }
    },
    {
      "id": "webscraper_io.get_scraping_job",
      "service": "webscraper_io",
      "name": "get_scraping_job",
      "description": "Get one Web Scraper Cloud scraping job by numeric scraping job ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "scraping_job_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric scraping job ID to fetch."
          }
        },
        "additionalProperties": false,
        "required": [
          "scraping_job_id"
        ],
        "description": "The input payload for getting one Web Scraper Cloud scraping job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric scraping job ID."
          },
          "custom_id": {
            "anyOf": [
              {
                "type": "string",
                "description": "The custom scraping job identifier when provided."
              },
              {
                "type": "null"
              }
            ]
          },
          "sitemap_name": {
            "anyOf": [
              {
                "type": "string",
                "description": "The sitemap name associated with the scraping job."
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The scraping job status returned by Web Scraper Cloud."
              },
              {
                "type": "null"
              }
            ]
          },
          "sitemap_id": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The numeric sitemap ID associated with the scraping job."
              },
              {
                "type": "null"
              }
            ]
          },
          "test_run": {
            "anyOf": [
              {
                "type": "integer",
                "description": "Whether the scraping job was created as a test run."
              },
              {
                "type": "null"
              }
            ]
          },
          "jobs_scheduled": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of jobs scheduled for the scraping run."
              },
              {
                "type": "null"
              }
            ]
          },
          "jobs_executed": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of jobs executed for the scraping run."
              },
              {
                "type": "null"
              }
            ]
          },
          "jobs_failed": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of failed jobs in the scraping run."
              },
              {
                "type": "null"
              }
            ]
          },
          "jobs_empty": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of empty-result jobs in the scraping run."
              },
              {
                "type": "null"
              }
            ]
          },
          "jobs_no_value": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of no-value-result jobs in the scraping run."
              },
              {
                "type": "null"
              }
            ]
          },
          "stored_record_count": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The number of stored records produced by the scraping run."
              },
              {
                "type": "null"
              }
            ]
          },
          "request_interval": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The configured request interval in milliseconds for the scraping run."
              },
              {
                "type": "null"
              }
            ]
          },
          "page_load_delay": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The configured page load delay in milliseconds for the scraping run."
              },
              {
                "type": "null"
              }
            ]
          },
          "driver": {
            "anyOf": [
              {
                "type": "string",
                "description": "The scraping driver returned by Web Scraper Cloud."
              },
              {
                "type": "null"
              }
            ]
          },
          "scheduled": {
            "anyOf": [
              {
                "type": "integer",
                "description": "Whether the scraping job was started by the sitemap scheduler."
              },
              {
                "type": "null"
              }
            ]
          },
          "time_created": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The Unix timestamp when the scraping job was created."
              },
              {
                "type": "null"
              }
            ]
          },
          "scraping_duration": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The scraping duration in seconds when the run has completed."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw scraping job object returned by Web Scraper Cloud."
          }
        },
        "additionalProperties": false,
        "description": "A normalized scraping job record returned by Web Scraper Cloud."
      }
    },
    {
      "id": "webscraper_io.get_sitemap",
      "service": "webscraper_io",
      "name": "get_sitemap",
      "description": "Get one Web Scraper Cloud sitemap by numeric sitemap ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sitemap_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric sitemap ID to fetch."
          }
        },
        "additionalProperties": false,
        "required": [
          "sitemap_id"
        ],
        "description": "The input payload for getting one Web Scraper Cloud sitemap."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric sitemap ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The sitemap name."
          },
          "sitemap": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "minLength": 1,
                "description": "The sitemap identifier inside the sitemap JSON."
              },
              "startUrl": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "One sitemap start URL."
                },
                "description": "The sitemap start URLs used by Web Scraper Cloud.",
                "minItems": 1
              },
              "selectors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "One selector object from the sitemap JSON."
                },
                "description": "The selector definitions included in the sitemap JSON.",
                "minItems": 1
              }
            },
            "additionalProperties": true,
            "required": [
              "_id",
              "startUrl",
              "selectors"
            ],
            "description": "The sitemap JSON document sent to or returned by Web Scraper Cloud."
          },
          "sitemap_json": {
            "type": "string",
            "minLength": 1,
            "description": "The raw sitemap JSON string returned by Web Scraper Cloud."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "sitemap",
          "sitemap_json"
        ],
        "description": "The response returned for one Web Scraper Cloud sitemap."
      }
    },
    {
      "id": "webscraper_io.list_scraping_jobs",
      "service": "webscraper_io",
      "name": "list_scraping_jobs",
      "description": "List Web Scraper Cloud scraping jobs with optional page, sitemap, and tag filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The one-based page number to request."
          },
          "sitemap_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The optional numeric sitemap ID used to filter jobs."
          },
          "tag": {
            "type": "string",
            "minLength": 1,
            "description": "The optional scraping job tag used to filter results."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Web Scraper Cloud scraping jobs."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "The numeric scraping job ID."
                },
                "custom_id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The custom scraping job identifier when provided."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "sitemap_name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The sitemap name associated with the scraping job."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The scraping job status returned by Web Scraper Cloud."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "sitemap_id": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The numeric sitemap ID associated with the scraping job."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "test_run": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Whether the scraping job was created as a test run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "jobs_scheduled": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The number of jobs scheduled for the scraping run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "jobs_executed": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The number of jobs executed for the scraping run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "jobs_failed": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The number of failed jobs in the scraping run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "jobs_empty": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The number of empty-result jobs in the scraping run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "jobs_no_value": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The number of no-value-result jobs in the scraping run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "stored_record_count": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The number of stored records produced by the scraping run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "request_interval": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The configured request interval in milliseconds for the scraping run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "page_load_delay": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The configured page load delay in milliseconds for the scraping run."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "driver": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The scraping driver returned by Web Scraper Cloud."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "scheduled": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Whether the scraping job was started by the sitemap scheduler."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "time_created": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Unix timestamp when the scraping job was created."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "scraping_duration": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The scraping duration in seconds when the run has completed."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw scraping job object returned by Web Scraper Cloud."
                }
              },
              "additionalProperties": false,
              "description": "A normalized scraping job record returned by Web Scraper Cloud."
            },
            "description": "The scraping job records returned by Web Scraper Cloud."
          },
          "current_page": {
            "type": "integer",
            "minimum": 1,
            "description": "The current result page returned by Web Scraper Cloud."
          },
          "last_page": {
            "type": "integer",
            "minimum": 1,
            "description": "The last available result page returned by Web Scraper Cloud."
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "description": "The total number of records available for the query."
          },
          "per_page": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of records returned per result page."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "current_page",
          "last_page",
          "total",
          "per_page"
        ],
        "description": "The response returned when listing Web Scraper Cloud scraping jobs."
      }
    },
    {
      "id": "webscraper_io.list_sitemaps",
      "service": "webscraper_io",
      "name": "list_sitemaps",
      "description": "List Web Scraper Cloud sitemaps with optional page and tag filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The one-based page number to request."
          },
          "tag": {
            "type": "string",
            "minLength": 1,
            "description": "The sitemap or scraping job tag used to filter results."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Web Scraper Cloud sitemaps."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "The numeric sitemap ID."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The sitemap name."
                }
              },
              "additionalProperties": false,
              "description": "A minimal sitemap summary returned by Web Scraper Cloud."
            },
            "description": "The sitemap summaries returned by Web Scraper Cloud."
          },
          "current_page": {
            "type": "integer",
            "minimum": 1,
            "description": "The current result page returned by Web Scraper Cloud."
          },
          "last_page": {
            "type": "integer",
            "minimum": 1,
            "description": "The last available result page returned by Web Scraper Cloud."
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "description": "The total number of records available for the query."
          },
          "per_page": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of records returned per result page."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "current_page",
          "last_page",
          "total",
          "per_page"
        ],
        "description": "The response returned when listing Web Scraper Cloud sitemaps."
      }
    },
    {
      "id": "webscraper_io.update_sitemap",
      "service": "webscraper_io",
      "name": "update_sitemap",
      "description": "Update an existing Web Scraper Cloud sitemap by numeric sitemap ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sitemap_id": {
            "type": "integer",
            "minimum": 1,
            "description": "The numeric sitemap ID to update."
          },
          "_id": {
            "type": "string",
            "minLength": 1,
            "description": "The sitemap identifier inside the sitemap JSON."
          },
          "startUrl": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One sitemap start URL."
            },
            "description": "The sitemap start URLs used by Web Scraper Cloud.",
            "minItems": 1
          },
          "selectors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One selector object from the sitemap JSON."
            },
            "description": "The selector definitions included in the sitemap JSON.",
            "minItems": 1
          }
        },
        "additionalProperties": true,
        "required": [
          "sitemap_id",
          "_id",
          "startUrl",
          "selectors"
        ],
        "description": "The input payload for updating one Web Scraper Cloud sitemap."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean",
            "description": "Whether Web Scraper Cloud confirmed the sitemap update."
          }
        },
        "additionalProperties": false,
        "required": [
          "ok"
        ],
        "description": "The response returned after updating a Web Scraper Cloud sitemap."
      }
    }
  ]
}
