---
title: "Export report tables (v2)"
method: GET
path: "/api/v1/discovery/report-tables/export-v2"
tags: ["discovery"]
deprecated: true
---

# Export report tables (v2)

`GET /api/v1/discovery/report-tables/export-v2`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/discovery/report-tables/export-v2`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

> **Deprecated.**

Deprecated: use reports.report-tables.export.v1 (reports_report_tables_export). Export every row of a campaign's report table for one dimension, with chosen columns, filters, sort, and search, as CSV (cells as the dashboard displays them), over the campaign's results window. Answers that window (`scope.window`) and the file's name, type and size with a short-lived `url` to GET it (fetch it before `expiresAt`; call again for a fresh export). Each table is read through the report dataset that replaced it (segments from discovery.brand-performance, sources from discovery.sources, and the row tables as discovery.report-rows.list.v2 reads them); what no dataset names is left out: locations and decision factors export no row, and a source's type is empty. The competitors table lists the campaign's own brand among the brands, as the Competitors leaderboard does. Every export is audited.

## Query parameters

- `id` string, uuid, required: Discovery campaign id.
- `dateRange` string, nullable: Result window: `all`, a preset id, or `yyyy-MM-dd..yyyy-MM-dd`. Omit for the campaign's default window.
- `segments` string[]: Narrows the table to these `axis:id` segments, ANDed; entries the campaign does not have are ignored, as the dashboard ignores them.
- `dimension` 'revenue' | 'audiences' | 'channels' | 'locations' | 'topics' | 'competitors' | 'engines' | 'sources' | 'conversations' | 'customers' | 'win-reasons' | 'loss-reasons' | 'decision-factors' | 'positive-sentiment' | 'negative-sentiment', required: What one row is: a product (`revenue`: one of the business's revenue lines), audience, channel, location, topic, competitor, engine, or source (the campaign's reports), or a conversation, customer, win reason, loss reason, decision factor, or sentiment theme.
- `rows` boolean: Default true. False exports the header line alone, as the report builder shows a table whose rows are unset.
- `columns` string[]: The dimension's columns, in order; the `name` column always leads when rows are exported. Omit (or send none) for the dimension's default columns.
- `filters` string[]: Every filter must hold (AND); numeric columns take gt, lt, equals with a number.
- `sortColumn` string: The column to sort by; `none` keeps the dimension's own order. Omit for the dimension's default sort.
- `sortDirection` 'asc' | 'desc': With sortColumn; default asc.
- `search` string: Free text matched against the selected columns as displayed.

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- DiscoveryReportTablesExportV2Response
  - `filename` string, required: Suggested file name for saving the bytes
  - `contentType` string, required
  - `byteLength` integer, required
  - `url` string, uri, nullable, required: Short-lived presigned URL that GETs the bytes; null when this deployment cannot sign the object
  - `expiresAt` string, date-time, nullable, required: When url stops working (minutes after the call); null with url
  - `exportId` string, uuid, required: This export's id, recorded on its audit row.
  - `rowCount` integer, required: Table rows in the file, after the header.
  - `format` 'csv', required
  - `dimension` 'revenue' | 'audiences' | 'channels' | 'locations' | 'topics' | 'competitors' | 'engines' | 'sources' | 'conversations' | 'customers' | 'win-reasons' | 'loss-reasons' | 'decision-factors' | 'positive-sentiment' | 'negative-sentiment', required
  - `scope` DiscoveryScope, required
    - `campaignId` string, required
    - `state` 'ready' | 'running' | 'failed' | 'out-of-range' | 'no-campaign', required: `ready` carries results; every other state carries none.
    - `failureReason` string, nullable, required
    - `perspective` object, nullable, required: The brand lens applied; null when the report honors no lens or carries no results.
      - `brand` string, required: The brand the results were read as.
      - `isOwnBrand` boolean, required: Whether that brand is the campaign's own.
    - `window` object, nullable, required: The results window; null unless `state` is `ready`.
      - `from` string, date, required: The first UTC day a trend plots: the range's, never before the first interaction.
      - `to` string, date, required: The last UTC day a trend plots: the range's end, never past today.
      - `asOf` string, date, required: The UTC day every single value is as of: its value is the average over the campaign's interactions dated in the 30 days ending with it. The range's end, or, when those 30 days hold none, the last day with an interaction.
      - `comparedTo` string, date, required: The day a change compares with: 30 days before asOf.
      - `interactionCount` integer, required: The interactions dated in the 30 days ending asOf, under the scope.
      - `customerCount` integer, required: The distinct customers of those interactions.

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/5241805fe425?raw)
