Search all guides

Reference · Tools

Jina AI integration

Fetch web content from a URL, perform web searches, or generate deep research reports using Jina AI.

Action Utility v1

The Jina AI node reads web pages into clean text, searches the web, and runs deep research, using Jina's Reader, Search and DeepSearch APIs. CSS selectors let you keep the part of a page you want and drop the rest. A typical build is turning a list of article URLs into clean markdown ready for summarising.

Works as
Action
Tool name
jina_ai
Operations
3 — Read , Search , Deep Research
Parameters
13
Outputs
Output, Error
Credentials
Jina AI API
Official docs
Jina AI docs jina.ai

What you can build with Jina AI

  • Extract clean markdown content from a URL using Jina Reader.
  • Search the web for a topic and get LLM-friendly results.
  • Generate a deep research report on renewable energy.
  • Fetch a webpage as plain text with CSS selector targeting.

Overview

Jina AI provides AI-powered web content extraction, search, and deep research capabilities. The Reader API fetches content from any URL and converts it to clean, LLM-friendly formats (markdown, text, HTML, JSON). The Search API performs web searches and returns top results in clean formats. The Deep Research API performs in-depth research on a topic and generates a structured research report with citations. All APIs support output format customization and content filtering.

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Jina AI API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Readerreader
Researchresearch

Operations

OperationValueDescription
ReadreadFetches content from a URL and converts it to clean, LLM-friendly formats
Deep ResearchdeepResearchResearch a topic and generate a structured research report

Read and Search belong to the reader resource; Deep Research belongs to the research resource.

Parameters

Reader: Read

ParameterTypeRequiredDefaultDescription
URLstringYes—The URL to fetch content from. Supports expressions like {{ $json.link }}.
SimplifybooleanNotrueWhether to return a simplified version of the response instead of the raw data.
OptionscollectionNo{}Optional settings that shape how the page is fetched and returned. Supports expressions inside its fields.
— Output FormatoptionsNo—Specify desired output format.
Options: markdown, text, html, screenshot, or an empty value (the default) for JSON
— Target CSS SelectorstringNo—CSS selector to focus on specific page elements.
— Exclude CSS SelectorstringNo—CSS selector for elements to exclude.
— Enable Image CaptioningbooleanNofalseWhether to generate captions for images within the content.
— Wait for CSS SelectorstringNo—Wait for a specific element to appear before extracting content (for dynamic pages).
ParameterTypeRequiredDefaultDescription
Search QuerystringYes—The search query to perform. Supports expressions like {{ $json.query }}.
SimplifybooleanNotrueWhether to return a simplified version of the response instead of the raw data.
OptionscollectionNo{}Optional settings that shape the search. Supports expressions inside its fields.
— Output FormatoptionsNo—Specify desired output format.
Options: markdown, text, html, screenshot, or an empty value (the default) for JSON
— Site FilterstringNo—Restrict search to specific websites.
— Page NumbernumberNo—The page number of the search results to retrieve.

Research: Deep Research

ParameterTypeRequiredDefaultDescription
Research QuerystringYes—The topic or question for the AI to research. Supports expressions.
SimplifybooleanNotrueWhether to return a simplified version of the response instead of the raw data.
OptionscollectionNo{}Optional settings that steer which sources the research draws on. Supports expressions inside its fields.
— Max Returned SourcesnumberNo—The maximum number of URLs to include in the final answer.
— Prioritize SourcesstringNo—A comma-separated list of domains that are given higher priority for content retrieval.
— Exclude SourcesstringNo—A comma-separated list of domains to be strictly excluded from content retrieval.
— Site FilterstringNo—Restrict search to specific websites (comma-separated).

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo5Maximum number of items to process concurrently. Lower values recommended due to API rate limits.

Output Data

The result is merged into the item JSON at the top level, so the incoming fields stay addressable alongside it, and binary data is forwarded. How many items come out, and what is on them, depends on the operation and on Simplify.

Read

One output item per input item. With Simplify on, the Reader response’s data object is merged — the page’s extracted content in the format you asked for, together with the metadata Jina returns about the fetch. With Simplify off, the full envelope is merged instead, so the content sits one level down under data alongside the response’s status fields.

One output item per search result. With Simplify on, the array of results is unpacked and each result is merged onto its own copy of the input item, so a query returning ten results produces ten items — no Split Out node needed. With Simplify off, the whole response is merged onto a single item and the results stay nested inside it as an array.

Deep Research

One output item per input item. With Simplify on, the first choice of the research response is reduced to three properties:

{
  "content": "…the research report…",
  "annotations": [],
  "usage": {}
}
  • content — the generated report as text.
  • annotations — the citations attached to the report, linking claims back to the sources used.
  • usage — the token accounting Jina reports for the run.

With Simplify off, the raw chat-completions response is merged instead, so the report sits inside the choices array and usage stays at the top level.

Reference the result downstream by expression, e.g. {{ $json.content }}.

Example Configuration

Read a page as clean markdown, ignoring the chrome around the article:

{
  "type": "jina_ai",
  "parameters": {
    "resource": "reader",
    "operation": "read",
    "url": "{{ $json.link }}",
    "simplify": true,
    "options": {
      "outputFormat": "markdown",
      "targetSelector": "#main-content .article",
      "excludeSelector": "header, footer, .ads"
    }
  }
}

Wait for a dynamic page to finish loading before extracting it:

{
  "type": "jina_ai",
  "parameters": {
    "resource": "reader",
    "operation": "read",
    "url": "{{ $json.link }}",
    "options": {
      "waitForSelector": "#results-loaded",
      "enableImageCaptioning": true
    }
  }
}

Search the web and fan the results out one per item:

{
  "type": "jina_ai",
  "parameters": {
    "resource": "reader",
    "operation": "search",
    "searchQuery": "{{ $json.topic }}",
    "simplify": true,
    "options": {
      "outputFormat": "markdown",
      "siteFilter": "jina.ai, github.com",
      "pageNumber": 1
    }
  }
}

Run a deep research report on a topic, steering it towards trusted domains:

{
  "type": "jina_ai",
  "parameters": {
    "resource": "research",
    "operation": "deepResearch",
    "researchQuery": "{{ $json.question }}",
    "simplify": true,
    "options": {
      "maxReturnedSources": 5,
      "prioritizeSources": "nature.com, arxiv.org",
      "excludeSources": "example-spam.com"
    },
    "maxConcurrency": 1
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

This tool uses Jina AI to read web content, search the web, or perform deep research. It is ideal when you need to fetch clean, LLM-friendly content from a URL, find top web results for a query, or generate a structured research report on a topic. It produces either clean content from a URL, search results, or a comprehensive research report.

  • Search fans out, Read does not. A simplified Search produces one item per result; Read and Deep Research always produce exactly one item per input item.
  • Leave Output Format empty for JSON. The named formats (markdown, text, html, screenshot) ask Jina to return that representation instead.
  • CSS selectors cut the noise. Target CSS Selector narrows extraction to the part of the page you want; Exclude CSS Selector strips navigation, footers and ad slots. Both accept several comma-separated selectors.
  • Wait for CSS Selector is for client-rendered pages. Without it, a page that fills in after load can be read while still empty.
  • Domain lists are comma-separated. Prioritize Sources, Exclude Sources and Site Filter each take a plain list of hostnames.
  • Deep Research is slow and expensive. Keep Max Concurrency at 1 or 2 for research runs, and reserve larger values for Read.
  • Turn Simplify off when you need the envelope — status fields for Read, the nested result array for Search, or the full choice objects for Deep Research.

Frequently asked questions

Which operations fan out into multiple items?

Search does — a simplified Search produces one item per result. Read and Deep Research always produce exactly one item per input item.

How do I get JSON rather than a specific format?

Leave Output Format empty. Setting `markdown`, `text`, `html` or `screenshot` asks Jina to return that representation instead of the JSON structure.

How do I strip navigation and ads from a page?

Use Exclude CSS Selector to remove them, and Target CSS Selector to narrow extraction to the content you actually want. Both accept standard CSS selectors.

Which credential does it need?

A Jina AI API credential, shared across the Reader, Search and DeepSearch operations.

Build with Jina AI

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Jina AI API credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.