Generate a CSV file of deal data with flexible filtering and column selection. Returns an export_id to track the job status and download the file when ready.
Copy for AI context
| Parameter | Type | Description |
|---|---|---|
columns | string[] | Array of column IDs to include in the export. See Available Columns for options. |
| Filter | Type | Description | Example |
|---|---|---|---|
deal_ids | string[] | Export specific deals by their Hindsight IDs | ["deal_123", "deal_456"] |
| Filter | Type | Description | Example |
|---|---|---|---|
owner_ids | string[] | Filter by deal owner IDs | ["user_abc", "user_xyz"] |
collaborators | string[] | Filter by collaborator IDs | ["user_def"] |
| Filter | Type | Description | Example |
|---|---|---|---|
status | string[] | Deal stages. Values are your CRM’s stage names (e.g. "Won", "Lost") | |
deal_type | string[] | Types of deals | ["New Business", "Expansion", "Renewal"] |
region | string[] | Geographic regions | ["North America", "EMEA", "APAC"] |
industry | string[] | Customer industries | ["Technology", "Healthcare", "Finance"] |
product_labels | string[] | Product labels associated with the deal | ["Product A", "Product B"] |
Note on status values: status filters come from your your specific workspace configuration.
| Filter | Type | Description | Example |
|---|---|---|---|
close_date | object | Date range filter | {"from": "2026-01-01", "to": "2026-03-31"} |
close_date.from | string | Start date (ISO 8601) | "2026-01-01" |
close_date.to | string | End date (ISO 8601) | "2026-03-31" |
amount | object | Deal amount range | {"min": 10000, "max": 100000} |
amount.min | number | Minimum deal amount | 10000 |
amount.max | number | Maximum deal amount | 100000 |
| Filter | Type | Description | Example |
|---|---|---|---|
competitors | string[] | Filter by competitor IDs — matches deals where any of the specified competitors appear | ["comp_123", "comp_456"] |
primary_competitor | string[] | Filter by competitor IDs — matches deals where the specified competitor is the primary competitor | ["comp_123"] |
has_competitor | boolean | Only deals with any competitor mentioned | true |
| Filter | Type | Description | Example |
|---|---|---|---|
analyzed | boolean | Only include analyzed deals | true |
verified | boolean | Only include verified analyses | true |
| Filter | Type | Description | Example |
|---|---|---|---|
salesforce_filters | object[] | Deal-level Salesforce properties (Opportunity object) | See CRM Filters |
salesforce_filters_account | object[] | Account-level Salesforce properties (Account object) | See CRM Filters |
hubspot_filters | object[] | Deal-level HubSpot properties | See CRM Filters |
hubspot_filters_account | object[] | Account-level HubSpot properties (Company object) | See CRM Filters |
| Filter Type | Description | Example |
|---|---|---|
is / is any of | Matches if any value is present (default) | Include deals with competitor A OR B |
is not / exclude | Excludes if any value is present | Exclude deals with competitor A or B |
include all of | Matches only if all values are present | Include only deals with BOTH A AND B |
_filter_type to the filter name:
_filter_type suffixes: owner_filter_type, collaborator_filter_type, competitors_filter_type, primary_competitor_filter_type, product_filter_type, status_filter_type, deal_type_filter_type, region_filter_type, industry_filter_type.
| Column ID | Description |
|---|---|
name | Deal name |
owner_id | Deal owner ID |
all_competitors | All competitors involved in the deal |
drivers | Win/loss drivers and reasons |
features | Product features discussed |
scorecard | Complete win-loss analysis scorecard (includes all scores and explanations) |
deal_status | Current deal stage |
previous_status | Previous deal stage |
amount | Deal value |
proposal_due | Expected/actual close date |
created_at | Deal creation date |
deal_analyzed | Whether deal has been analyzed |
analysis_verified | Whether analysis has been verified |
type | Deal type (New Business, Expansion, Renewal) |
region | Geographic region |
summary | Executive summary of the deal |
Note: The scorecard column includes all win-loss metrics (product fit, sales execution, relationship, price sensitivity, competitive intensity, customer fit, messaging fit, and messaging accuracy) with both scores and explanations.
crm_{property_id}crm_lead_source, crm_sales_rep_regioncrm_hubspot_account_{property_id}crm_salesforce_account_{property_id}crm_hubspot_account_industry, crm_salesforce_account_annual_revenuecustom_metric_score_{metric_name}custom_metric_explanation_{metric_name}custom_metric_score_Strategic Fit or custom_metric_explanation_StrategicFitcustom_answer_{answer_name}custom_answer_Champion identified or custom_answer_ChampionIdentified for a custom question called “Champion identified”| Filter key | Object |
|---|---|
salesforce_filters | Opportunity (deal-level) |
salesforce_filters_account | Account (account-level) |
hubspot_filters | Deal (deal-level) |
hubspot_filters_account | Company (account-level) |
property field is an object, not a string:
map_to for standard account properties:
Some account properties (like industry or company name) are stored in a dedicated database column rather than the raw CRM payload. These require a map_to field pointing to the column name. Without it, the filter searches the raw CRM JSON and won’t find data for these fields.
is, is notis greater than, is less thanis greater than or equal to, is less than or equal tois before, is after (for dates)contains, does not contain (for text)| Plan | Requests per Minute |
|---|---|
| Essentials | 10 |
| Growth | 60 |
| Enterprise | 300 |
| Plan | Exports per Month |
|---|---|
| Essentials | 10,000 |
| Growth | 30,000 |
| Enterprise | 100,000 |
429 response with X-RateLimit-* and X-Usage-* headers indicating current usage and reset timing.
/deals endpoint instead| Status Code | Description |
|---|---|
| 400 | Invalid request (e.g., invalid column ID, malformed filters) |
| 401 | Invalid or missing API key |
| 403 | Insufficient permissions |
| 404 | Export ID not found |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
API key from Hindsight dashboard