Export mentions
Export up to 50,000 mentions matching the given view and filters. Body shape matches POST /api/v2/mentions (v1-compatible) plus a format selector, an optional total-row limit cap, and an optional author pivot (one author’s mentions on a single source). Returns a downloadable file. Pass format: "csv" for a CSV or omit / "json" for a JSON file.
Export-specific rate limits (on top of the generic hourly cap): 5 exports per hour and 2 concurrent exports per organization — each export fans out into many backing queries, so it is budgeted separately from ordinary requests. Exceeding either returns 429 (code: "RATE_LIMITED"; the hourly-cap variant carries details.retryAfterSeconds). Exports are for ad-hoc extraction — to continuously sync mentions, poll POST /api/v2/mentions with a startDate cursor instead of re-exporting the workspace on a schedule.
Authorizations
Clerk API key. Create one in Settings → API Keys. Pass as Authorization: Bearer <key>. Keys carry a scope — read, write (implies read) or admin (implies write) — chosen when the key is minted. Each operation's security requirement (and its x-required-scope extension) names the minimum scope it needs; request the least-privileged key that covers the operations you call.
Body
Same filter shape as ListMentionsRequest plus a format selector, an optional total-row limit cap, and an optional author pivot. Exports up to 50,000 mentions per call and returns the result as a downloadable file.
Feed/view ID to reuse as a base filter. If filters is also provided, the two are merged (view's saved filters + inline filters both apply).
x <= 9007199254740991Filter object. Accepts the simple flat form ({ source: ["twitter"], sentiment: ["positive"] }) or the advanced group form with AND/OR operators. Use POST /api/v2/ai/filter-wizard to generate one from natural language.
- Option 1
- Option 2
When true, includes low-relevance mentions (internal relevanceScore = 2). Default false returns only high and medium relevance (scores 0 and 1).
When true, enriches each returned mention with the latest public engagement snapshot (engagementMetrics and engagementObservedAt). Default false omits those optional fields and avoids the additional Tinybird engagement-state join. This controls response enrichment only; engagement filters still work without it.
When true, forces relevant-only results (scores 0 and 1) even if includeAll is true. Convenience parity with the in-app feed toggle; omit to defer to includeAll.
Opaque cursor from a previous response's pagination.nextCursor.
Free-text search. Case-insensitive substring match across the mention's title, body, author handle, and author display name. Composes with view/filters (AND semantics). Empty or whitespace-only values are ignored.
200Response format. json returns a downloadable JSON file ({data, total}); csv keeps the original 15-column prefix. When requested, the established engagementMetrics and engagementObservedAt columns remain immediately after that prefix. Flattened review metadata (reviewRating, reviewRatingMax, reviewVerified, reviewResponse, reviewResponseAt, reviewTargetName) follows.
json, csv "csv"
Cap the export at the first N matching mentions (1-50,000). A TOTAL row cap, not a page size — the export paginates internally. Omit for the full 50,000-row cap.
1 <= x <= 50000Export one author's mentions instead of the filtered feed (the by-author lookup): the author's handle, or for source: ["linkedin"] a profile URL/slug. Requires filters to contain exactly one source platform and nothing else, and cannot be combined with view or search — the by-author lookup honors none of them.
1 - 500Response
200 response
JSON shape returned when format=json. When format=csv, the response is text/csv with a matching X-Total-Count header.
