API

Export buyer pains as CSV

One URL returns a project's buyer-pain themes as a CSV — drop it into a Google Sheets formula, an Excel query, or an Airtable sync and it stays current.

Last updated July 6, 2026

On this page

The CSV export turns a project's buyer-pain themes into one comma-separated file you can pull straight into a spreadsheet. It's the same data as pains.list and pains.get, combined into one file — every theme, with no pages to stitch together.

The endpoint: GET /api/v1/export/sov

https://dist0.com/api/v1/export/sov?view=summary&token=<your-key>

It returns text/csv with a Content-Disposition: attachment header, so a browser downloads it and a spreadsheet imports it.

Query paramRequiredWhat it does
tokensee belowYour API key, for callers that can't send an Authorization header (like Google Sheets).
viewnosummary (default) or full. See the two views below.
projectyes, unless the key is project-scopedAny part of the project's URL, to pick which one. Required when your key isn't tied to a single project; a key scoped to one project ignores it.

Authenticate

You can send your API key two ways:

  • In the URL — add ?token=<your-key>. Use this for Google Sheets' IMPORTDATA, which can't send headers.
  • In a headerAuthorization: Bearer <your-key>, the same as every other API call.

Because the token in the URL sits visibly in the sheet formula, tie the key to one project and treat it as shareable: anyone with the URL can read that project's pains. If it leaks, cancel the key in Settings → Developer → API keys and paste a new one into the formula. See Authentication for making and scoping keys.

The two views

summary — one row per theme

Small and spreadsheet-friendly. One row per buyer-pain theme, with its top source links packed into the last cell.

ColumnWhat it holds
theme_idThe theme's id (use it to match rows across exports).
titleThe theme name.
summaryA one-line description of the pain.
post_countHow many source posts back the theme.
first_seen / last_seenThe date range the posts span (YYYY-MM-DD).
top_source_linksThe 5 most recent source post URLs.

full — one row per post, per theme

One row for every (theme × source post) pair — the theme columns above (minus top_source_links) plus each post's details. Best for downloads and scripts.

Extra columnWhat it holds
quoteThe exact line from the post that surfaced the pain.
authorThe post author's Reddit handle.
post_urlA link to the source post.
post_titleThe post's title.
subredditThe subreddit it came from.
seen_dateWhen we picked it up (YYYY-MM-DD).

Send it to a spreadsheet

  • Google Sheets — paste the export URL into IMPORTDATA and the sheet fills and refreshes itself. See Track your buyer pains in a Google Sheet for the full walkthrough.
  • ExcelData → From Web, paste the export URL, and use Refresh to pull the latest.
  • Airtable — paste the export URL into a CSV import/sync source.

Use the summary view for these — Google Sheets caps a single IMPORTDATA at 50,000 cells and about 2 MB, and summary stays well under both. The full view can be far larger, so download it or pull it from a script instead.

From the command line

curl -s "https://dist0.com/api/v1/export/sov?view=full" \
  -H "Authorization: Bearer $DIST0_TOKEN" \
  -o pains.csv