---
title: "Iframely processing modes"
description: "Preview, Assist, Discover, Search, AI-Input, AI-Train"
---

# Iframely processing modes

Iframely facilitates data exchange between publishers and developers. For Automated Processing, this exchange is built around the concept of processing modes.

Developers declare their intended use case, called a _**mode**_, and publishers control what data to make available for each mode. Metadata, links, structured data, an excerpt, or fulltext can be available depending on publisher permissions, content signals, tags, directives, or explicit dashboard settings.

A processing mode can be configured as a default in developer settings or provided with each API request as a [mode parameter](/docs/data-api#api-request).

See [Data API Content](/docs/content) for the additional content types available through the Data API and [Content access by mode](/docs/content-policy) for default access levels and how publisher controls affect each mode. The details of the resulting access decision are passed to customers in the [Data API Access](/docs/content-access) object.

## Available modes

To encourage interoperability and collaboration, Iframely extends its processing mode vocabulary from Cloudflare's [Content Signals](https://contentsignals.org/), using the same meaning where applicable.

There are five modes available for Automated Processing in the Iframely Data API:

- **Assist** — Human → same human
- **Discover** — Human → other humans
- **Search** — Machine → human
- **AI-Input** — Human → machine
- **AI-Train** — Machine → machine

The first four modes are handled by the [Iframely Processing Agent](/docs/about-processing). **AI-Train** is mediated by the [Iframely Training Agent](/docs/about-training).

For completeness, we also use a static `preview` value for the Preview APIs, including [oEmbed](/docs/oembed-api) and the [Iframely API](/docs/iframely-api). It identifies preview requests in the HTTP headers Iframely sends when fetching URLs.

## Preview

**Human → human.**

A person shares a URL with other people — in a chat, social post, or document. Iframely fetches the metadata needed to render a link preview, and nothing more.

Preview is not an Automated Processing mode and cannot be used as a `mode` parameter in the Data API.

See the [Preview Agent](/docs/about) and the [oEmbed API](/docs/oembed-api) and [Iframely API](/docs/iframely-api) documentation for more information.

## Assist

**Human → same human.**

A person asks an automated assistant something, and content from a URL is used to generate the response that person receives — for example, an answer, summary, or recommendation grounded in the page.

Declare `assist` when a specific person's request triggers the fetch and the resulting content is used to respond to that same person.

## Discover

**Human → other humans.**

A person submits or shares a URL, and a platform's discovery or recommendation system makes it available to other people — for example, in a feed, trending stories, or recommendations.

Declare `discover` when a human submission triggers the fetch and the resulting content is made available to people other than the person who submitted it.

## Search

**Machine → human.**

An automated system discovers a URL without a specific human submission and indexes its content for later retrieval in response to a search query. The result may be used to show a preview or excerpt that links back to the source page.

Declare `search` when content is indexed for later query-driven retrieval and the indexing is not tied to a specific human submission.

## AI-Input

**Human → machine.**

A specific, live human request triggers an AI system to fetch a URL and use its content as input or context — for example, as grounding in a retrieval-augmented generation (RAG) pipeline.

Declare `ai-input` when a model consumes the content as part of a live request rather than content being indexed for later retrieval.

Content used for AI-Input is not retained by the customer and is not used for training.

## AI-Train

**Machine → machine.**

Content is used to build or improve a model over time rather than to answer a specific live request. It may be retained and may be reflected in the model's future outputs.

Declare `ai-train` when content is used to train, fine-tune, or evaluate a model and is not tied to a single live request.

AI-Train requires publisher opt-in beyond preview-level access. See [About the Iframely Training Agent](/docs/about-training) and [Content access by mode](/docs/content-access).

## The `use` signal

In addition to the processing mode, Iframely supports a `use` parameter. We currently adopt Cloudflare's definition and values for the [use signal](https://blog.cloudflare.com/content-independence-day-ai-options/#how-does-a-crawler-use-my-content).

`mode` identifies the processing scenario, while `use` describes how the content will be used within that scenario.

`use` takes one of three values:

- `immediate` — interact with the content, but store and reuse nothing;
- `reference` — index, excerpt, and link back;
- `full` — summarize and reproduce the content.

We use the same vocabulary in our `Forwarded` header for transitive trust and `X-Iframely-Processing` header (see [Allowlisting Iframely](/docs/allowlisting)), so a publisher's `robots.txt` preference and Iframely's declared request use the same terms.