> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to Perplexity

The Perplexity connector lets your AI agent act in each user's Perplexity account. Each user connects their own Perplexity access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 17 tools.

**Authentication:** Bearer Token
**Categories:** AI, Search
**Tools:** 17: 13 read, 4 write, 0 destructive
**Users sign in with:** Access token
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=PERPLEXITY)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Perplexity connection

   In **AgentKit > Connections**, create a Perplexity connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'perplexity'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Perplexity:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'perplexity_list_async_chat_completions',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "perplexity"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Perplexity:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="perplexity_list_async_chat_completions",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user opens the link once and enters their Perplexity credentials there. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'perplexity_answer_decisions',
  toolInput: {
    model: '<model>',
    questions: {},
    state: '<state>',
  },
  connector: 'perplexity',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="perplexity_answer_decisions",
    tool_input={
        "model": "<model>",
        "questions": {},
        "state": "<state>",
    },
    connection_name="perplexity",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `perplexity_answer_decisions`

Answer Decisions · Read-only

Evaluate named yes/no, multiple-choice, and scoring questions against a piece of content.
Returns an answers object keyed by question name (probability for noul, chosen option for choice, level for score), plus the model and token usage.
Use this for classification, moderation, routing, and rubric scoring over text; use perplexity_chat_completion for open-ended answers.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `model` (`string`, required): Decision model: pplx-decider-v1.2 (larger) or pplx-decider-flash-v1.2 (faster, cheaper). Aliases pplx-decider-latest and pplx-decider-flash-latest also work.
- `questions` (`object`, required): Questions as a JSON object mapping a name you choose to a question. Each question has a type of noul (yes/no, with instructions), choice (with criteria mapping option names to descriptions), or score (with criteria listing level descriptions). Example: {"is_bug":{"type":"noul","instructions":"Is this a bug report?"},"area":{"type":"choice","criteria":{"billing":null,"settings":null}}}
- `state` (`string`, required): The content every question refers to: plain text, or a JSON object or array serialized as a string. Example: Customer wrote: the app crashes every time I open settings.

Example input: `{"model":"<model>","questions":{},"state":"<state>"}`

### `perplexity_create_contextualized_embeddings`

Create Contextualized Embeddings · Read-only

Generate document-aware embeddings for chunks, where each chunk is encoded with the context of its sibling chunks.
Returns a data array with one entry per document holding its chunk embeddings (base64-encoded), plus model and token usage.
Use this for chunked documents in retrieval pipelines; use perplexity_create_embeddings for independent texts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `input` (`array`, required): Documents as a JSON array of arrays: each inner array holds the ordered chunk strings of one document (max 512 documents, 16,000 chunks total). Example: [["intro chunk","body chunk"],["other doc chunk"]]
- `model` (`string`, required): Contextualized embedding model: pplx-embed-context-v1-0.6b (up to 1024 dimensions) or pplx-embed-context-v1-4b (up to 2560 dimensions). One of: `pplx-embed-context-v1-0.6b`, `pplx-embed-context-v1-4b`.
- `dimensions` (`integer`, optional): Output dimensions (128-1024 for the 0.6b model, 128-2560 for the 4b model). Defaults to the model full size. Example: 512
- `encoding_format` (`string`, optional): Encoding of returned vectors: base64_int8 (default) or base64_binary (1 bit per dimension). One of: `base64_int8`, `base64_binary`.

Example input: `{"input":["first passage","second passage"],"model":"pplx-embed-context-v1-0.6b"}`

### `perplexity_create_embeddings`

Create Embeddings · Read-only

Generate text embeddings for one or many independent texts.
Returns a data array with one embedding per input (base64-encoded), plus model and token usage.
Use this for independent texts such as queries or sentences. Use perplexity_create_contextualized_embeddings for chunks that belong to the same document.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `input` (`array`, required): Texts to embed, as a JSON array of 1-512 non-empty strings. Total must stay under 120,000 tokens. Example: ["first passage","second passage"]
- `model` (`string`, required): Embedding model: pplx-embed-v1-0.6b (up to 1024 dimensions) or pplx-embed-v1-4b (up to 2560 dimensions). One of: `pplx-embed-v1-0.6b`, `pplx-embed-v1-4b`.
- `dimensions` (`integer`, optional): Output dimensions (128-1024 for the 0.6b model, 128-2560 for the 4b model). Defaults to the model full size. Example: 512
- `encoding_format` (`string`, optional): Encoding of returned vectors: base64_int8 (default) or base64_binary (1 bit per dimension). One of: `base64_int8`, `base64_binary`.

Example input: `{"input":["first passage","second passage"],"model":"pplx-embed-v1-0.6b"}`

### `perplexity_get_agent_response`

Get Agent Response · Read-only

Fetch one Agent API response by id, including its current status.
Returns id, status, model, output items, error details if any, and token usage.
Use this to poll a background run or re-read a stored response.
Requires the response id returned by perplexity_create_agent_response.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Id of the agent response, as returned by perplexity_create_agent_response (starts with resp_). Example: resp_abc123

Example input: `{"id":"<id>"}`

### `perplexity_get_async_chat_completion`

Get Async Chat Completion · Read-only

Fetch the status and result of one async chat completion job by id.
Returns id, model, status, created/started/completed/failed timestamps, error_message, and the full response once finished.
Use this to poll a job created with perplexity_create_async_chat_completion; use perplexity_list_async_chat_completions to find job ids.
Requires the job id returned when the job was created.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `api_request` (`string`, required): Id of the async chat completion job, as returned by perplexity_create_async_chat_completion or perplexity_list_async_chat_completions. Example: 7d1a2b3c-4e5f-6789-abcd-0123456789ab

Example input: `{"api_request":"<api_request>"}`

### `perplexity_get_skill`

Get Skill · Read-only

Get one custom skill by id, optionally at a specific revision.
Returns skill_id, name, description, revision, latest_revision, and created/updated timestamps.
Use this for one skill's metadata; use perplexity_list_skill_revisions for its history.
Requires a skill id from perplexity_list_skills.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `skill_id` (`string`, required): Id of the skill, as returned by perplexity_list_skills. Example: skill_abc123
- `revision` (`string`, optional): Revision id to fetch; defaults to the latest revision. Example: rev_001

Example input: `{"skill_id":"<skill_id>"}`

### `perplexity_get_skill_download_url`

Get Skill Download URL · Read-only

Get a download URL for a custom skill's package, optionally for a specific revision.
Returns revision, name, and a download_url to fetch the package from.
Use this to retrieve a skill's files; use perplexity_get_skill for metadata only.
Requires a skill id from perplexity_list_skills.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `skill_id` (`string`, required): Id of the skill, as returned by perplexity_list_skills. Example: skill_abc123
- `revision` (`string`, optional): Revision id to download; defaults to the latest revision. Example: rev_001

Example input: `{"skill_id":"<skill_id>"}`

### `perplexity_list_agent_response_files`

List Agent Response Files · Read-only

List the files an Agent API response generated, such as sandbox outputs.
Returns a data array of file records, each with a file id and metadata.
Use this to see what a finished run produced.
Requires the response id from perplexity_create_agent_response.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): Id of the agent response, as returned by perplexity_create_agent_response (starts with resp_). Example: resp_abc123

Example input: `{"id":"<id>"}`

### `perplexity_list_async_chat_completions`

List Async Chat Completions · Read-only

List async chat completion jobs submitted with your API key.
Returns a requests array with each job's id, model, status, and timestamps, plus a next_token.
Use this to find job ids; use perplexity_get_async_chat_completion to read one job's full result.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `perplexity_list_models`

List Models · Read-only

List the models available to the Agent API.
Returns a data array of model objects whose ids can be passed as model to perplexity_create_agent_response.
Use this before creating an agent response when you need a valid model id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `perplexity_list_skill_revisions`

List Skill Revisions · Read-only

List the revisions of a custom skill.
Returns a revisions array and next_page_token.
Use this to see a skill's history; use perplexity_get_skill for the current metadata.
Requires a skill id from perplexity_list_skills.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `skill_id` (`string`, required): Id of the skill, as returned by perplexity_list_skills. Example: skill_abc123
- `limit` (`integer`, optional): Maximum items to return (1-200). Example: 50
- `page_token` (`string`, optional): Pagination cursor: the next_page_token from a previous response. Omit for the first page.

Example input: `{"skill_id":"<skill_id>"}`

### `perplexity_list_skills`

List Skills · Read-only

List the custom skills in your Perplexity project, newest first.
Returns a skills array with each skill's id, name, description, and revision, plus next_page_token.
Use this to find skill ids; use perplexity_get_skill for one skill's detail.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Maximum items to return (1-200). Example: 50
- `page_token` (`string`, optional): Pagination cursor: the next_page_token from a previous response. Omit for the first page.

Example input: `{}`

### `perplexity_search`

Search the Web · Read-only

Search the web and return ranked results with page titles, URLs, snippets, and dates.
Returns a results array plus a request id; each result carries title, url, snippet, date, and last_updated.
Use this for raw ranked results you will read yourself. Use perplexity_chat_completion or perplexity_create_agent_response for a synthesized answer with citations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `query` (`string`, required): Search query text. For several related searches in one call, pass a JSON array of up to 5 query strings instead. Example: latest developments in solid-state batteries
- `country` (`string`, optional): Two-letter ISO 3166-1 alpha-2 country code to bias results toward. Example: US
- `last_updated_after_filter` (`string`, optional): Only return results last updated after this date, in MM/DD/YYYY format. Example: 01/15/2026
- `last_updated_before_filter` (`string`, optional): Only return results last updated before this date, in MM/DD/YYYY format. Example: 06/30/2026
- `max_results` (`integer`, optional): Maximum number of results to return (1-50). Values above 20 are only accepted with search_type "people". Default 10.
- `max_tokens` (`integer`, optional): Maximum total webpage content tokens to return across all results (1-1000000). Example: 25000
- `max_tokens_per_page` (`integer`, optional): Maximum webpage content tokens to extract from each result page (1-1000000). Example: 2048
- `search_after_date_filter` (`string`, optional): Only return results published after this date, in MM/DD/YYYY format. Example: 01/15/2026
- `search_before_date_filter` (`string`, optional): Only return results published before this date, in MM/DD/YYYY format. Example: 06/30/2026
- `search_domain_filter` (`array`, optional): Restrict results to these domains (max 20), as a JSON array of domain strings. Example: ["nature.com","arxiv.org"]
- `search_language_filter` (`array`, optional): Restrict results to these languages (max 20), as a JSON array of two-letter ISO 639-1 codes. Example: ["en","de"]
- `search_recency_filter` (`string`, optional): Only return results published within this time window. One of: `hour`, `day`, `week`, `month`, `year`.
- `search_type` (`string`, optional): Search mode: "web" for general web search (default), "fast" for lower-latency and lower-cost web search, "people" for people search. One of: `web`, `fast`, `people`.

Example input: `{"query":"<query>"}`

### `perplexity_cancel_agent_response`

Cancel Agent Response · Write

Request cancellation of a running Agent API response.
Returns the response_id and status cancelling; the run stops shortly after, so poll perplexity_get_agent_response for the final status.
Use this to stop a long background run. A run that already finished returns an error.
Requires the response id from perplexity_create_agent_response.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): Id of the agent response, as returned by perplexity_create_agent_response (starts with resp_). Example: resp_abc123

Example input: `{"id":"<id>"}`

### `perplexity_chat_completion`

Create Chat Completion · Write

Generate a web-grounded answer from a Sonar model for a conversation (non-streaming).
Returns the assistant message in choices, plus citations, search_results, token usage, and optional images and related_questions.
Use this for quick cited answers. Use perplexity_create_agent_response for multi-step agentic work, perplexity_create_async_chat_completion for slow sonar-deep-research jobs, and perplexity_search for raw results.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `messages` (`array`, required): Conversation so far as a JSON array of message objects, each with a role (system, user, assistant, or tool) and a content string. End with a user message. Example: [{"role":"user","content":"What changed in the EU AI Act this year?"}]
- `model` (`string`, required): Sonar model to use: sonar (fast, cheap), sonar-pro (deeper, more citations), sonar-reasoning-pro (step-by-step reasoning), or sonar-deep-research (long multi-step research, slow). One of: `sonar`, `sonar-pro`, `sonar-deep-research`, `sonar-reasoning-pro`.
- `disable_search` (`boolean`, optional): When true, turns web search off and the model answers from its training data only.
- `enable_search_classifier` (`boolean`, optional): When true, a classifier decides whether the query needs web search at all.
- `language_preference` (`string`, optional): ISO 639-1 code for the preferred response language. Example: en
- `last_updated_after_filter` (`string`, optional): Only use sources last updated after this date, MM/DD/YYYY. Example: 01/15/2026
- `last_updated_before_filter` (`string`, optional): Only use sources last updated before this date, MM/DD/YYYY. Example: 06/30/2026
- `max_tokens` (`integer`, optional): Maximum number of completion tokens to generate (up to 128000). Example: 1024
- `reasoning_effort` (`string`, optional): How much effort the model spends reasoning (minimal, low, medium, high); applies to reasoning-capable models. One of: `minimal`, `low`, `medium`, `high`.
- `response_format` (`object`, optional): Structured output control as a JSON object. Omit for plain text. For JSON output use {"type":"json_schema","json_schema":{"schema":{...}}}, where schema is a JSON Schema object.
- `return_images` (`boolean`, optional): When true, include image results in the response.
- `return_related_questions` (`boolean`, optional): When true, include suggested follow-up questions.
- `search_after_date_filter` (`string`, optional): Only use sources published after this date, MM/DD/YYYY. Example: 01/15/2026
- `search_before_date_filter` (`string`, optional): Only use sources published before this date, MM/DD/YYYY. Example: 06/30/2026
- `search_domain_filter` (`array`, optional): Limit search to these domains as a JSON array of domain strings. Example: ["wikipedia.org","github.com"]
- `search_language_filter` (`array`, optional): Filter results by language as a JSON array of ISO 639-1 codes. Example: ["en","fr"]
- `search_mode` (`string`, optional): Source of search results: web (default), academic for scholarly sources, or sec for SEC filings. One of: `web`, `academic`, `sec`.
- `search_recency_filter` (`string`, optional): Only use sources published within this time window. One of: `hour`, `day`, `week`, `month`, `year`.
- `stop` (`array`, optional): Stop sequences as a JSON array of strings; generation ends when one is produced. Example: ["END"]
- `temperature` (`number`, optional): Sampling randomness from 0 to 2; higher is more random. Example: 0.2
- `top_p` (`number`, optional): Nucleus sampling cutoff from 0 to 1. Example: 0.9
- `web_search_options` (`object`, optional): Web search tuning as a JSON object, for example {"search_context_size":"high"} (low, medium, or high amount of search context).

Example input: `{"messages":[{"role":"user","content":"What changed in the EU AI Act this year?"}],"model":"sonar"}`

### `perplexity_create_agent_response`

Create Agent Response · Write

Run the Perplexity Agent API on a question or task, with optional web search tools, reasoning control, and structured output (non-streaming).
Returns id, status, model, an output array of messages and tool calls, and token usage with cost.
Use this for agentic, multi-step research; use perplexity_chat_completion for a quick cited Sonar answer. Set background to true and poll perplexity_get_agent_response for long runs.
Provide either preset or model.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `input` (`string`, required): The question or task for the agent as plain text. Example: Compare the pricing of the three largest cloud vector databases.
- `background` (`boolean`, optional): When true the call returns immediately with status queued; poll perplexity_get_agent_response until the status is terminal. Use for long runs.
- `instructions` (`string`, optional): System instructions that set standing rules for the run. Example: Answer in three bullet points and cite sources.
- `language_preference` (`string`, optional): ISO 639-1 code for the response language. Example: en
- `max_output_tokens` (`integer`, optional): Maximum number of tokens to generate. Example: 2048
- `max_steps` (`integer`, optional): Maximum number of research loop steps (1-100); overrides the preset. Without a preset the default is 1. Example: 5
- `model` (`string`, optional): Model id in provider/model format, for example anthropic/claude-sonnet-5-5. Required when preset is not provided; use perplexity_list_models for valid ids.
- `models` (`array`, optional): Fallback chain of model ids in provider/model format, tried in order until one succeeds; takes precedence over model. Example: ["openai/gpt-5.6-terra","anthropic/claude-sonnet-5-5"]
- `preset` (`string`, optional): Preset name that bundles a model, system prompt, and search settings, such as fast, low, medium, high, or xhigh. Required when model is not provided.
- `previous_response_id` (`string`, optional): Id of an earlier completed response to continue the conversation from. Example: resp_abc123
- `reasoning` (`object`, optional): Reasoning control as a JSON object with an effort of minimal, low, medium, high, xhigh, or max. Example: {"effort":"high"}
- `response_format` (`object`, optional): Structured output as a JSON object: {"type":"json_schema","json_schema":{"name":"answer","schema":{...}}}, where name is 1-64 alphanumeric characters and schema is a JSON Schema object.
- `store` (`boolean`, optional): When false, the response is hidden from later retrieval; it can still be continued with previous_response_id. Default true.
- `temperature` (`number`, optional): Sampling temperature forwarded to the model. Example: 0.3
- `tools` (`array`, optional): Tools the agent may use, as a JSON array of tool objects, each with a type such as web_search, fetch_url, finance_search, people_search, image_search, or sandbox. Example: [{"type":"web_search"},{"type":"fetch_url"}]
- `top_p` (`number`, optional): Nucleus sampling cutoff forwarded to the model. Example: 0.9

Example input: `{"input":"<input>"}`

### `perplexity_create_async_chat_completion`

Create Async Chat Completion · Write

Submit a Sonar chat completion as a background job instead of waiting for the answer.
Returns the job id, model, status, and timestamps; the finished answer appears in response once status is COMPLETED.
Use this for long jobs such as sonar-deep-research. Poll with perplexity_get_async_chat_completion and browse jobs with perplexity_list_async_chat_completions.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `messages` (`array`, required): Conversation so far as a JSON array of message objects, each with a role (system, user, assistant, or tool) and a content string. End with a user message. Example: [{"role":"user","content":"What changed in the EU AI Act this year?"}]
- `model` (`string`, required): Sonar model to use: sonar (fast, cheap), sonar-pro (deeper, more citations), sonar-reasoning-pro (step-by-step reasoning), or sonar-deep-research (long multi-step research, slow). One of: `sonar`, `sonar-pro`, `sonar-deep-research`, `sonar-reasoning-pro`.
- `disable_search` (`boolean`, optional): When true, turns web search off and the model answers from its training data only.
- `enable_search_classifier` (`boolean`, optional): When true, a classifier decides whether the query needs web search at all.
- `idempotency_key` (`string`, optional): Unique key so retries of the same submission do not create duplicate jobs. Example: report-2026-q3-eu-ai-act
- `language_preference` (`string`, optional): ISO 639-1 code for the preferred response language. Example: en
- `last_updated_after_filter` (`string`, optional): Only use sources last updated after this date, MM/DD/YYYY. Example: 01/15/2026
- `last_updated_before_filter` (`string`, optional): Only use sources last updated before this date, MM/DD/YYYY. Example: 06/30/2026
- `max_tokens` (`integer`, optional): Maximum number of completion tokens to generate (up to 128000). Example: 1024
- `reasoning_effort` (`string`, optional): How much effort the model spends reasoning (minimal, low, medium, high); applies to reasoning-capable models. One of: `minimal`, `low`, `medium`, `high`.
- `response_format` (`object`, optional): Structured output control as a JSON object. Omit for plain text. For JSON output use {"type":"json_schema","json_schema":{"schema":{...}}}, where schema is a JSON Schema object.
- `return_images` (`boolean`, optional): When true, include image results in the response.
- `return_related_questions` (`boolean`, optional): When true, include suggested follow-up questions.
- `search_after_date_filter` (`string`, optional): Only use sources published after this date, MM/DD/YYYY. Example: 01/15/2026
- `search_before_date_filter` (`string`, optional): Only use sources published before this date, MM/DD/YYYY. Example: 06/30/2026
- `search_domain_filter` (`array`, optional): Limit search to these domains as a JSON array of domain strings. Example: ["wikipedia.org","github.com"]
- `search_language_filter` (`array`, optional): Filter results by language as a JSON array of ISO 639-1 codes. Example: ["en","fr"]
- `search_mode` (`string`, optional): Source of search results: web (default), academic for scholarly sources, or sec for SEC filings. One of: `web`, `academic`, `sec`.
- `search_recency_filter` (`string`, optional): Only use sources published within this time window. One of: `hour`, `day`, `week`, `month`, `year`.
- `stop` (`array`, optional): Stop sequences as a JSON array of strings; generation ends when one is produced. Example: ["END"]
- `temperature` (`number`, optional): Sampling randomness from 0 to 2; higher is more random. Example: 0.2
- `top_p` (`number`, optional): Nucleus sampling cutoff from 0 to 1. Example: 0.9
- `web_search_options` (`object`, optional): Web search tuning as a JSON object, for example {"search_context_size":"high"} (low, medium, or high amount of search context).

Example input: `{"messages":[{"role":"user","content":"What changed in the EU AI Act this year?"}],"model":"sonar"}`

## Related

Other AI connectors ([all 134](/agentkit/connectors/?category=ai)):

- [Chorus](/agentkit/connectors/chorus/): Scalekit connector, Username and password, 9 tools
- [Gong](/agentkit/connectors/gong/): Scalekit connector, OAuth, 69 tools
- [Jiminny](/agentkit/connectors/jiminny/): Scalekit connector, Access token, 27 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
