Reference · Tools

Jina AI

Interact with Jina AI APIs for web reading, searching, and deep research

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.

Node type
Action
Parameters
13
Outputs
Output, Error
Credentials
Jina AI API

Jina AI

Extract web content, search the web, or perform deep research with Jina AI

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.

Category: Utility
Tool Name: jina_ai
Version: 1

Appearance: Icon: lucide-Brain | Color: #FF6B35

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
SearchsearchPerforms a web search via Jina AI and returns top results as 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
URLstringYesThe 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 FormatoptionsNoSpecify desired output format.
Options: markdown, text, html, screenshot, or an empty value (the default) for JSON
— Target CSS SelectorstringNoCSS selector to focus on specific page elements.
— Exclude CSS SelectorstringNoCSS selector for elements to exclude.
— Enable Image CaptioningbooleanNofalseWhether to generate captions for images within the content.
— Wait for CSS SelectorstringNoWait for a specific element to appear before extracting content (for dynamic pages).
ParameterTypeRequiredDefaultDescription
Search QuerystringYesThe 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 FormatoptionsNoSpecify desired output format.
Options: markdown, text, html, screenshot, or an empty value (the default) for JSON
— Site FilterstringNoRestrict search to specific websites.
— Page NumbernumberNoThe page number of the search results to retrieve.

Research: Deep Research

ParameterTypeRequiredDefaultDescription
Research QuerystringYesThe 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 SourcesnumberNoThe maximum number of URLs to include in the final answer.
— Prioritize SourcesstringNoA comma-separated list of domains that are given higher priority for content retrieval.
— Exclude SourcesstringNoA comma-separated list of domains to be strictly excluded from content retrieval.
— Site FilterstringNoRestrict 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 }}.

Usage Examples

  • 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

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

Extract web content, search, or perform deep research using Jina AI’s Reader, Search, and DeepSearch APIs.

  • 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 the Jina AI node

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 updated . Spotted something wrong? Tell us.