{
  "id": "octen.extract",
  "object": "tool",
  "name": "Octen Extract",
  "summary": "Clean, LLM-ready markdown for up to 20 URLs per call.",
  "description": "Extract the content of web pages as clean, model-ready markdown or plain text. Batch up to 20 page URLs per call, returning whole-page content or query-focused highlights (pass 'query'), detected page structure, cache-age control (max_age_seconds), a per-URL timeout, and optional image/video/audio resource lists. Results preserve input order; failed URLs are returned with status 'failed' and an error_message — and are not billed.\n\nRaw octen#extract endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.octen.ai/api-reference/extract).",
  "category": "web",
  "hosted_by": "Octen",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "octen",
      "name": "Octen",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "octen_extract",
  "input_schema": {
    "type": "object",
    "properties": {
      "body": {
        "type": "object",
        "properties": {
          "urls": {
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 2048
            },
            "description": "URLs to extract content from (max 20 per request). Failed URLs are returned with status 'failed' and are not billed."
          },
          "query": {
            "description": "Intent-focused keywords. When provided, returns query-relevant highlights per URL; otherwise the complete content.",
            "type": "string"
          },
          "max_age_seconds": {
            "default": 86400,
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Maximum age (seconds) of cached content before a re-fetch."
          },
          "format": {
            "default": "markdown",
            "type": "string",
            "enum": [
              "markdown",
              "text"
            ],
            "description": "Format of the returned content."
          },
          "timeout": {
            "default": 30,
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991,
            "description": "Per-URL extraction timeout in seconds."
          },
          "include_images": {
            "default": false,
            "type": "boolean"
          },
          "include_videos": {
            "default": false,
            "type": "boolean"
          },
          "include_audio": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "urls"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "body"
    ],
    "additionalProperties": false
  },
  "kind": "endpoint"
}