# Perplexity

Get cited, web-searched answers from Perplexity's agent, search the web, and create embeddings.

## Connect Perplexity

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `perplexity` and choose **Perplexity**.
3. Fill in the fields. Each one says **Required** or **Optional**.
4. Press **Test and save**. GoRunner checks the connection before it saves anything.

The sheet asks for:

- **API Key · Required**: A Perplexity API key (pplx-…).

Paste a Perplexity API key: perplexity.ai → Settings → API → API Keys (the API group needs credit).

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Do things in Perplexity

Add a **Perplexity** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [Agent](https://docs.gorunner.io/apps/perplexity#fields-f-agent): Create a Response · Get Response
- [Search](https://docs.gorunner.io/apps/perplexity#fields-f-search): Search the Web
- [Embedding](https://docs.gorunner.io/apps/perplexity#fields-f-embedding): Create Embeddings · Create Contextualized Embeddings
- [Model](https://docs.gorunner.io/apps/perplexity#fields-f-model): Get Many

To start a workflow from Perplexity, use a [Schedule](https://docs.gorunner.io/apps/schedule), [Webhook](https://docs.gorunner.io/apps/webhook) or [Form](https://docs.gorunner.io/apps/form) trigger.

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from Perplexity can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When Perplexity says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, Perplexity is `pieceId: "perplexity"` with `actionId: "perplexity"`, set by `resource` and an `operation_…` field, such as `operation_agent`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It reads from outside without changing anything (`reads_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### Perplexity › Agent

### Create a Response

- **Input · Required**: The question or task.
- **Instructions · Optional**: Standing rules for the answer: tone, format, what to leave out. Optional.
- **Effort · Optional**: How much research Perplexity does, from a quick lookup (Fast) to long multi-step research (Extra high). Each is a model, search setup and tools Perplexity keeps up to date. A model of your choice uses only the web search below. Options: Fast, Low, Medium, High, Extra high, A model of my choice. Default: Low.
- **Model · Required**: The model, as provider/model (perplexity/sonar, openai/gpt-5.5 …). Shows when **Effort** is **A model of my choice**.
- **Fallback Models · Optional**: Models to try, in order, when the first fails: one per line (at most 4). Shows when **Effort** is **A model of my choice**.
- **Web Search · Optional**: Let the model search the web. (An effort level always may.). On by default. Shows when **Effort** is **A model of my choice**.
- **Domains · Optional**: Search only these sites, or leave out a site with a leading minus (-reddit.com): one per line or comma-separated, at most 20.
- **Published Within · Optional**: Only pages published within this time. Options: Any time, The last hour, The last day, The last week, The last month, The last year. Default: Any time.
- **Published After · Optional**: A date, as 2026-10-01 or 10/01/2026.
- **Published Before · Optional**: A date, as 2026-10-01 or 10/01/2026.
- **Results per Search · Optional**: How many web results each search collects (1–50). Empty uses the effort's setting.
- **Country · Optional**: Search as if from this country (ISO 3166-1 code: US, DE, FR …).
- **Reasoning Effort · Optional**: How hard the model thinks (apart from Effort, which sets the research). Models without reasoning ignore it. Options: Default, Minimal, Low, Medium, High, Extra high, Max. Default: Default.
- **Max Output Tokens · Optional**: The most tokens the answer may use. Anthropic models need it.
- **Max Steps · Optional**: The most research rounds (search, read, think) before it answers (1–500). Empty uses the effort's, or 1 for a model.
- **Output Format · Optional**: Text, or JSON matching a schema, which the step parses for later steps (under json). Options: Text, JSON matching a schema. Default: Text.
- **JSON Schema · Required**: The JSON Schema the answer must match, such as {"type":"object","properties":{"answer":{"type":"string"}},"required":["answer"]}. Shows when **Output Format** is **JSON matching a schema**.
- **Answer Language · Optional**: The language to answer in, as an ISO 639-1 code (en, de, es …). Empty: the input's language.
- **Continue From · Optional**: The id of an earlier completed response, to ask a follow-up in the same conversation.
- **Background Mode · Optional**: Return at once with the response's id and status queued; read the answer later with Get Response. For research that outlasts the step's time limit. Off by default.
- **More Options · Optional**: Other Agent API request fields, as JSON (such as {"tools":[{"type":"web_search"},{"type":"fetch_url"}]}). Added to the request as written.

### Get Response

- **Response ID · Required**: The id Create a Response returned.

### Perplexity › Search

### Search the Web

- **Query · Required**: What to search for. Several queries, one per line (at most 5), are searched together.
- **Max Results · Optional**: How many results to return (1–20). Default: 10.
- **Search Type · Optional**: Fast answers sooner and costs less; Web is the full search. Options: Web, Fast. Default: Web.
- **Domains · Optional**: Search only these sites, or leave out a site with a leading minus (-reddit.com): one per line or comma-separated, at most 20.
- **Published Within · Optional**: Only pages published within this time. Options: Any time, The last hour, The last day, The last week, The last month, The last year. Default: Any time.
- **Published After · Optional**: A date, as 2026-10-01 or 10/01/2026.
- **Published Before · Optional**: A date, as 2026-10-01 or 10/01/2026.
- **Country · Optional**: Results for this country (ISO 3166-1 code: US, DE, FR …).
- **Languages · Optional**: Only pages in these languages (ISO 639-1 codes, comma-separated, at most 20).
- **Text per Page · Optional**: The most page text, in tokens, each result carries in its snippet. Empty uses Perplexity's default.

### Perplexity › Embedding

### Create Embeddings

- **Model · Required**: The embedding model: 0.6B is faster and cheaper, 4B more accurate. Options: pplx-embed-v1-0.6b (1,024 dimensions), pplx-embed-v1-4b (2,560 dimensions). Default: pplx-embed-v1-4b (2,560 dimensions).
- **Texts · Required**: The text to embed, or a list of texts from an earlier step (one vector per text, at most 512).
- **Dimensions · Optional**: Shorter vectors (from 128; at most 1,024 for 0.6B models, 2,560 for 4B). Empty: the model's full size.
- **Encoding · Optional**: int8 values (also given decoded, under vectors) or packed bits (1 bit per dimension, base64 only). Options: int8, Binary. Default: int8.

### Create Contextualized Embeddings

- **Model · Required**: The contextualized embedding model: 0.6B is faster and cheaper, 4B more accurate. Options: pplx-embed-context-v1-0.6b (1,024 dimensions), pplx-embed-context-v1-4b (2,560 dimensions). Default: pplx-embed-context-v1-4b (2,560 dimensions).
- **Documents · Required**: One list of chunks per document, in order: [["Chunk 1 of doc A","Chunk 2 of doc A"],["Doc B"]]. Chunks of one document are embedded knowing each other.
- **Dimensions · Optional**: Shorter vectors (from 128; at most 1,024 for 0.6B models, 2,560 for 4B). Empty: the model's full size.
- **Encoding · Optional**: int8 values (also given decoded, under vectors) or packed bits (1 bit per dimension, base64 only). Options: int8, Binary. Default: int8.

### Perplexity › Model

### Get Many

- **Return All · Optional**: Read every model, page by page (at most 1000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many models to return (1–1000). Default: 100. Shows when **Return All** is off.

Source: https://docs.gorunner.io/apps/perplexity
