Skip to main content
Perplexity

Search documentation

Type to search this documentation.

On this pageOverview

Perplexity with Cursor

Cursor is an AI-first code editor that can call any HTTP API from your project code and supports the Model Context Protocol (MCP) for in-editor tools. This guide covers three integration paths for Perplexity:

Official TypeScript SDK

Call the Perplexity API directly from your project code while you build in Cursor. Recommended.

OpenAI-Compatible SDK

Reuse an existing OpenAI client by pointing baseURL at https://api.perplexity.ai/v1.

Cursor MCP

Configure the hosted Perplexity Docs MCP in .cursor/mcp.json so Cursor can look up Perplexity docs while you code.

  • Cursor installed (cursor.com/download)
  • Node.js 18+ for the TypeScript examples
  • A Perplexity API key

Get API Key

Generate a key from the Perplexity API Portal.

Get Key

Never hardcode your API key in source files or commit it to a repository. Store it in an environment variable and read it at runtime:

Bash
export PERPLEXITY_API_KEY="your_api_key_here"
powershell
setx PERPLEXITY_API_KEY "your_api_key_here"

Create a .env file in your project root and add it to .gitignore:

Bash
# .env
PERPLEXITY_API_KEY=your_api_key_here

Load it at startup (for example with dotenv):

TypeScript
import "dotenv/config";

Section titled “Path 1: Official TypeScript SDK (Recommended)”

Build your application in Cursor and call the Perplexity API from your code using the official SDK. This is the most reliable path and gives you full type safety, preset support, and access to every API feature.

Bash
npm install @perplexity-ai/perplexity_ai

The Agent API is the recommended surface for most applications. Use the low preset for web-grounded responses with sensible defaults:

TypeScript
import Perplexity from "@perplexity-ai/perplexity_ai";

const client = new Perplexity(); // reads PERPLEXITY_API_KEY from the environment

const response = await client.responses.create({
  preset: "low",
  input: "Summarize the latest changes to the Perplexity Agent API.",
});

console.log(`Model used: ${response.model}`);
console.log(response.output_text);
Python equivalent
Python
from perplexity import Perplexity

client = Perplexity()  # reads PERPLEXITY_API_KEY from the environment

response = client.responses.create(
    preset="low",
    input="Summarize the latest changes to the Perplexity Agent API.",
)

print(f"Model used: {response.model}")
print(response.output_text)

Enable the web_search tool for explicit control over when search is used:

TypeScript
import Perplexity from "@perplexity-ai/perplexity_ai";

const client = new Perplexity();

const response = await client.responses.create({
  model: "openai/gpt-5.6-terra",
  input: "What are the latest developments in AI inference hardware?",
  tools: [{ type: "web_search" }],
  instructions:
    "You have access to a web_search tool. Use it for questions about current events, news, or recent developments.",
});

if (response.status === "completed") {
  console.log(response.output_text);
}

For more presets, tools, and configuration options see the Agent API quickstart and the SDK overview.


If you already have an OpenAI client in your project, you can reuse it by pointing the baseURL at https://api.perplexity.ai/v1. Perplexity accepts POST /v1/responses as an alias for the Agent API.

Bash
npm install openai
TypeScript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.PERPLEXITY_API_KEY,
  baseURL: "https://api.perplexity.ai/v1",
});

const response = await client.responses.create({
  model: "openai/gpt-5.6-terra",
  input: "Explain the key differences between REST and GraphQL APIs.",
});

console.log(response.output_text);
Python equivalent
Python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("PERPLEXITY_API_KEY"),
    base_url="https://api.perplexity.ai/v1",
)

response = client.responses.create(
    model="openai/gpt-5.6-terra",
    input="Explain the key differences between REST and GraphQL APIs.",
)

print(response.output_text)

Cursor supports the Model Context Protocol (MCP). The hosted Perplexity Docs MCP at https://docs.perplexity.ai/mcp lets Cursor search and read Perplexity's documentation directly from chat — useful for grounding code suggestions in canonical docs without context-switching to a browser.

Add a .cursor/mcp.json file at the root of your project. This makes the server available only for that project:

JSON
{
  "mcpServers": {
    "perplexity-docs": {
      "url": "https://docs.perplexity.ai/mcp"
    }
  }
}

To make the server available across all projects, add the same entry to ~/.cursor/mcp.json:

JSON
{
  "mcpServers": {
    "perplexity-docs": {
      "url": "https://docs.perplexity.ai/mcp"
    }
  }
}
  1. Add the Configuration

    Save the JSON above to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global).

  2. Reload Cursor

    Open Cursor → Settings → MCP and confirm perplexity-docs appears with a green/ready status. Restart Cursor if needed.

  3. Use It from Chat

    In Cursor chat, ask questions like "Using the Perplexity docs MCP, show me how to enable low in the Agent API." Cursor will call the MCP server and ground its answer in current documentation.


Perplexity is not included in Cursor's supported BYOK provider list. In current Cursor builds, the custom OpenAI-compatible model override sends Chat Completions requests (POST {base}/chat/completions). The Perplexity Agent API uses the Responses format and does not serve /v1/chat/completions, so pointing Cursor's override at https://api.perplexity.ai/v1 fails with 404.

Instead:

  • Use Perplexity from your project code (Path 1 or Path 2) for Agent API access.
  • Add the Perplexity Docs MCP (Path 3) for in-editor docs lookup, or the Perplexity MCP Server to give Cursor's agent Perplexity search and reasoning tools.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu