{
  "id": "octen.search",
  "object": "tool",
  "name": "Octen Web Search",
  "summary": "Minute-fresh web search with filters and full content.",
  "description": "Web search over the live internet with minute-level freshness. Search the web and get ranked results (title, url, highlight, authors, publish and crawl times, favicon), with optional query-relevant highlights, domain include/exclude filters, must/must-not text filters, publish/crawl time windows, a news topic mode, and safesearch. Enable full_content to return the complete page text for each result.\n\nRaw octen#search endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://docs.octen.ai/api-reference/search).",
  "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_search",
  "input_schema": {
    "type": "object",
    "properties": {
      "body": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "description": "The search query."
          },
          "topic": {
            "default": "general",
            "type": "string",
            "enum": [
              "general",
              "news"
            ],
            "description": "Use 'general' for general web search, or 'news' for news-focused results."
          },
          "count": {
            "default": 5,
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of results to return (1-100)."
          },
          "include_domains": {
            "description": "Domains to specifically include in the search results.",
            "maxItems": 1200,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 60
            }
          },
          "exclude_domains": {
            "description": "Domains to specifically exclude from the search results.",
            "maxItems": 1200,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 60
            }
          },
          "include_text": {
            "description": "Strings that must appear in the result page text.",
            "maxItems": 5,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 30
            }
          },
          "exclude_text": {
            "description": "Strings that must not appear in the result page text.",
            "maxItems": 5,
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 30
            }
          },
          "time_basis": {
            "default": "auto",
            "type": "string",
            "enum": [
              "auto",
              "published",
              "crawled"
            ],
            "description": "Which time field is used for time filtering."
          },
          "time_range": {
            "description": "Relative time window counting back from now. Mutually exclusive with start_time/end_time (which take precedence).",
            "type": "string",
            "enum": [
              "day",
              "week",
              "month",
              "year",
              "d",
              "w",
              "m",
              "y"
            ]
          },
          "start_time": {
            "description": "Start time for filtering results. ISO 8601 date-time, e.g. '2025-01-01T00:00:00Z'.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "end_time": {
            "description": "End time for filtering results. ISO 8601 date-time, e.g. '2025-01-01T00:00:00Z'.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "country": {
            "description": "ISO 3166 country to prioritize results from; default 'auto' infers it from the query.",
            "type": "string"
          },
          "highlight": {
            "type": "object",
            "properties": {
              "enable": {
                "type": "boolean",
                "description": "If true, returns query-relevant highlight in each result."
              },
              "max_tokens": {
                "type": "integer",
                "minimum": 100,
                "maximum": 20000,
                "description": "Max tokens returned per highlight."
              }
            },
            "additionalProperties": false
          },
          "format": {
            "default": "text",
            "type": "string",
            "enum": [
              "markdown",
              "text"
            ],
            "description": "Formatting of highlight outputs."
          },
          "safesearch": {
            "default": "strict",
            "type": "string",
            "enum": [
              "off",
              "strict"
            ],
            "description": "Explicit/adult content filtering."
          },
          "full_content": {
            "type": "object",
            "properties": {
              "enable": {
                "type": "boolean",
                "description": "If true, returns full_content for each result."
              },
              "max_tokens": {
                "type": "integer",
                "minimum": 100,
                "maximum": 100000,
                "description": "Maximum tokens of full content included per result."
              }
            },
            "additionalProperties": false
          },
          "include_images": {
            "default": false,
            "type": "boolean",
            "description": "Whether to include images in each result."
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    },
    "required": [
      "body"
    ],
    "additionalProperties": false
  },
  "kind": "endpoint"
}