Programmatic access to “Export my data” for PKM/RAG use

Pre-flight checklist

  • This is a Perplexity API feature request, not a Perplexity app, Comet, or web UI request.
  • I have checked whether this already exists in the docs or another forum topic.
  • I have described the developer workflow or API use case this would improve.

Feature type

  • New endpoint or API capability
  • New model, preset, or model behavior
  • New parameter or request option
  • New response field or metadata
  • SDK improvement
  • Dashboard, API key, or auth improvement
  • Billing, credits, rate limit, or usage reporting improvement
  • Docs or examples improvement
  • Other API improvement

Affected API area

  • Agent API
  • Search API
  • Sonar API
  • Embeddings API
  • SDKs
  • Dashboard, API keys, or auth
  • Billing or credits
  • Not sure

Summary

I’d like a read‑only, documented API for exporting my own Perplexity account data (threads, questions, answers, and citations), wrapping the existing “Export my data” / GDPR export mechanism so it can be used in automated PKM/RAG and analytics workflows instead of only via the UI/email.

Problem

Right now, the only first‑party way to get a full copy of my Perplexity history is the “Export my data” flow in the account settings or a GDPR/CCPA request, which produces a ZIP delivered by email. That works for occasional backups but doesn’t integrate cleanly into scheduled pipelines or personal knowledge graphs.

Because there’s no documented API for this:

  • I have to manually click the export button and handle email attachments, which doesn’t scale.

  • The alternatives are browser‑based exporters or DIY scraping/extensions that rely on internal APIs, which are brittle and potentially risky.

I want a stable, supported way to access the same data from code.

Proposed API behavior

Start an export job

POST /v1/account/export

Auth: user/account token.

Body (optional): filters like from, to, format: “json” | “ndjson”

Response:

json
{
“job_id”: “exp_123”,
“status”: “pending”,
“requested_at”: “2026-08-14T14:00:00Z”
}
Check job status

GET /v1/account/export/{job_id}

Response while pending:

json
{
“job_id”: “exp_123”,
“status”: “running”
}
Response when complete:

json
{
“job_id”: “exp_123”,
“status”: “complete”,
“download_url”: “https://…”, // short‑lived
“expires_at”: “2026-08-14T16:00:00Z”
}
Optional per‑thread access (same structure as the export)

GET /v1/account/threads

Query params: from, to, limit, cursor

Returns an array of thread metadata: IDs, titles, timestamps, maybe a short summary.

GET /v1/account/threads/{thread_id}

Returns the full thread: user prompts, Perplexity responses, cited URLs, and any metadata you already include in the export.

All endpoints would be:

Read‑only.

Scoped to the calling user/account.

Rate‑limited and using short‑lived download URLs.

This sits in the “Dashboard, API keys, or auth” area, since it’s about account‑level data and export behavior rather than model/query semantics.

Example usage

A typical usage pattern for a PKM/RAG pipeline might look like:

Nightly job triggers an export:

curl -X POST “https://api.perplexity.ai/v1/account/export
-H “Authorization: Bearer $PERPLEXITY_TOKEN”
-H “Content-Type: application/json”
-d ‘{
“from”: “2026-08-01T00:00:00Z”,
“to”: “2026-08-14T00:00:00Z”,
“format”: “ndjson”
}’

Worker polls the job until complete, then downloads and ingests:

curl “https://api.perplexity.ai/v1/account/export/exp_123
-H “Authorization: Bearer $PERPLEXITY_TOKEN”

# when status == “complete”, fetch download_url and stream into a PKM/RAG indexer

For more granular workflows, a tool could list recent threads and pull one by ID:

curl “https://api.perplexity.ai/v1/account/threads?from=2026-08-10T00:00:00Z
-H “Authorization: Bearer $PERPLEXITY_TOKEN”

curl “https://api.perplexity.ai/v1/account/threads/thr_456
-H “Authorization: Bearer $PERPLEXITY_TOKEN”

These calls would feed a PKM system, audit log, or analytics pipeline that treats Perplexity history as part of a user‑owned knowledge graph.

Workarounds tried

  • Using the account UI “Export my data” button, which sends a ZIP via email. This works but requires manual interaction and email handling, so it doesn’t integrate well with automation.perplexity+1

  • Relying on third‑party exporters and browser extensions that inject code into the Perplexity UI and talk to internal JSON endpoints.chromewebstore.google+1

    • These are fragile: they break when the UI or internal APIs change.

    • They introduce security and privacy concerns because they run in the browser and may have broad permissions.

I’ve avoided writing my own scraper for the same reasons and would prefer a first‑party, supported API.

Impact

Who benefits:

  • Individual power users who treat their AI interaction history as data (PKM, research logs, audit trails).

  • Teams and enterprises that want to archive or analyze their Perplexity usage for compliance, QA, or analytics.

  • Developers building tools that integrate Perplexity activity into dashboards, notebooks, or knowledge graphs.

How it helps:

  • Developer experience: No need to reverse‑engineer internal APIs or glue together email + manual downloads.

  • Reliability: A stable, documented API will be far less brittle than browser‑based exporters that depend on the current UI DOM or private endpoints.

  • Integration quality: Makes it straightforward to build high‑quality PKM/RAG, analytics, and audit integrations around Perplexity data, instead of treating Perplexity as a black box.

  • Governance: Aligns with the spirit of data portability and user control by making existing exports programmatically accessible, not just UI‑only.

Additional context

A lot of people already want bulk export and better control over their history, which shows up in existing community feature requests around exporting threaded conversations and managing threads. There’s also an ecosystem of third‑party exporters and scripts built on top of Perplexity, which is another signal that there’s real demand for a first‑party solution.

From my side, I’m building a fairly involved PKM/RAG system that ingests conversations from different tools and platforms into a single knowledge store. Perplexity is one of the main “thinking surfaces” I use, so having a clean, supported way to pull my history into that system would make it much easier to keep everything in sync without hacks.