> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usehindsight.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Product Intelligence Export

> Returns one row per product-feature association with its raw influence summary, feature taxonomy, deal, and account context. Without filters, returns associations of every sentiment.

Export individual product-feature requests with their original analysis, associated feature, deal, and customer context. Each row represents one feature-to-deal association, making it suitable for downstream clustering and product-request analysis.

<Accordion title="Copy for AI context">
  ```text theme={null}
  GET https://app.usehindsight.com/api/v1/product-intelligence
  Authorization: Bearer YOUR_API_KEY

  Optional query parameters:
    date_from: string (ISO 8601 association timestamp, inclusive)
    date_to: string (ISO 8601 association timestamp, inclusive)
    sentiment: "positive" | "negative" | "neutral"
    tags: string (comma-separated tags, or repeat this parameter; all specified tags must match)
    product: string (exact feature product)
    product_area: string (exact feature product area)

  200 Response:
  {
    "data": [
      {
        "id": "dfa_123",
        "created_at": "2026-09-01T12:00:00Z",
        "deal_id": "deal_123",
        "feature_id": "feature_123",
        "influence_summary": "The buyer needs SSO provisioning before they can move forward.",
        "sentiment": false,
        "tags": ["security", "must-have"],
        "features": {
          "id": "feature_123",
          "name": "SCIM provisioning",
          "description": "Automated user lifecycle management.",
          "product": "Platform",
          "product_area": "Identity"
        },
        "deals": {
          "id": "deal_123",
          "name": "Acme Enterprise",
          "salesforce_id": "006xxxxxxxxxxxx",
          "hubspot_id": "123456789",
          "status": "Negotiation",
          "amount": 50000,
          "close_date": "2026-10-15T00:00:00Z",
          "created_at": "2026-06-01T12:00:00Z",
          "updated_at": "2026-09-01T12:00:00Z",
          "clients": {
            "id": "client_123",
            "name": "Acme Corp",
            "salesforce_id": "001xxxxxxxxxxxx",
            "hubspot_id": "987654321",
            "industry": "Software",
            "website_url": "https://acme.example"
          }
        }
      }
    ],
    "meta": {
      "count": 1,
      "sentiment": null,
      "date_from": null,
      "date_to": null,
      "tags": [],
      "product": null,
      "product_area": null
    }
  }

  Rate limits: Organization-wide limits apply.
  ```
</Accordion>

## Overview

This endpoint returns the raw `influence_summary` for each feature association alongside CRM IDs and account context. It does not aggregate by feature, so a single feature requested in multiple deals appears as multiple rows.

When no filters are supplied, the response contains all product-feature associations available to the API key's organization, regardless of sentiment.

## Filters

| Parameter      | Type   | Description                                                                                                                     | Example                |
| -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------- | ---------------------- |
| `date_from`    | string | Inclusive ISO 8601 lower bound for the association's `created_at` timestamp                                                     | `2026-01-01`           |
| `date_to`      | string | Inclusive ISO 8601 upper bound for the association's `created_at` timestamp                                                     | `2026-03-31T23:59:59Z` |
| `sentiment`    | string | `positive`, `negative`, or `neutral`. Omit to return all sentiments. `neutral` returns associations with no sentiment recorded. | `negative`             |
| `tags`         | string | Comma-separated tags, or repeat the parameter. A row must contain every supplied tag.                                           | `security,must-have`   |
| `product`      | string | Exact feature product                                                                                                           | `Platform`             |
| `product_area` | string | Exact feature product area                                                                                                      | `Identity`             |

**Examples:**

```bash theme={null}
# All product intelligence for the organization
curl https://app.usehindsight.com/api/v1/product-intelligence \
  -H "Authorization: Bearer YOUR_API_KEY"

# Negative identity feedback created this quarter
curl --get https://app.usehindsight.com/api/v1/product-intelligence \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "date_from=2026-07-01" \
  --data-urlencode "sentiment=negative" \
  --data-urlencode "product_area=Identity"

# Requests carrying both tags
curl --get https://app.usehindsight.com/api/v1/product-intelligence \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --data-urlencode "tags=security,must-have"
```

## Response fields

| Field                         | Description                                                                    |
| ----------------------------- | ------------------------------------------------------------------------------ |
| `influence_summary`           | Raw feature-request or feature-impact summary extracted from the deal.         |
| `sentiment`                   | `true` for positive, `false` for negative, or `null` when neutral/unspecified. |
| `tags`                        | Tags assigned to this feature association in this deal.                        |
| `features`                    | The associated Hindsight feature, including product taxonomy.                  |
| `deals.salesforce_id`         | Salesforce Opportunity ID, when synced.                                        |
| `deals.hubspot_id`            | HubSpot Deal ID, when synced.                                                  |
| `deals.amount`                | Deal value/ARR, when recorded.                                                 |
| `deals.close_date`            | The deal's expected or actual close date.                                      |
| `deals.clients.salesforce_id` | Salesforce Account ID, when synced.                                            |
| `deals.clients.hubspot_id`    | HubSpot Company ID, when synced.                                               |

<Note>
  The endpoint returns a complete result set rather than a paginated collection. For especially large workspaces, narrow the result with the available filters.
</Note>


## OpenAPI

````yaml GET /product-intelligence
openapi: 3.1.0
info:
  title: Hindsight API
  description: >
    Integrate Hindsight competitive intelligence, win-loss insights, and deal
    data into your applications.


    ## Authentication

    All API requests require a Bearer token in the Authorization header:

    ```

    Authorization: Bearer YOUR_API_KEY

    ```


    Get your API key from the [Hindsight
    dashboard](https://app.usehindsight.com/settings/keys).

    Newly created API keys begin with `hs_`; existing keys remain supported
    until they

    are rotated or expire.


    ## Rate Limits


    Hindsight applies both organization-wide and per-API-key request limits.
    Per-key

    defaults are approximately one-third of the organization plan limit, with a
    minimum

    of 5 requests per minute. Expensive operations may also consume separate
    usage quotas.

    On `429 Too Many Requests`, use `X-RateLimit-Limit`,
    `X-RateLimit-Remaining`, and

    `X-RateLimit-Reset` (Unix milliseconds). These public headers represent the
    active

    response limit; separate per-key response headers are not currently
    provided.
  version: 1.0.0
  contact:
    name: Hindsight Support
    url: https://usehindsight.com/support
    email: support@hindsight.com
servers:
  - url: https://app.usehindsight.com/api/v1
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Chat
    description: AI-powered chat completions with competitive intelligence
  - name: Deals
    description: Access and export deal data
  - name: Documents
    description: Upload and manage documents
  - name: Interviews
    description: Create and manage win-loss interview requests
  - name: Tools
    description: Structured Hindsight tool calls for application-controlled workflows
paths:
  /product-intelligence:
    get:
      tags:
        - Deals
      summary: Export product-feature intelligence
      description: >-
        Returns one row per product-feature association with its raw influence
        summary, feature taxonomy, deal, and account context. Without filters,
        returns associations of every sentiment.
      operationId: getProductIntelligence
      parameters:
        - name: date_from
          in: query
          schema:
            type: string
            format: date-time
          description: >-
            Inclusive ISO 8601 lower bound for the association creation
            timestamp.
        - name: date_to
          in: query
          schema:
            type: string
            format: date-time
          description: >-
            Inclusive ISO 8601 upper bound for the association creation
            timestamp.
        - name: sentiment
          in: query
          schema:
            type: string
            enum:
              - positive
              - negative
              - neutral
          description: Filter association sentiment. Omit to return all sentiments.
        - name: tags
          in: query
          schema:
            type: string
          description: >-
            Comma-separated tags, or repeat the parameter. All specified tags
            must match.
        - name: product
          in: query
          schema:
            type: string
          description: Exact feature product.
        - name: product_area
          in: query
          schema:
            type: string
          description: Exact feature product area.
      responses:
        '200':
          description: Product-feature associations and applied filters.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - meta
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        created_at:
                          type: string
                          format: date-time
                        deal_id:
                          type: string
                        feature_id:
                          type: string
                        influence_summary:
                          type: string
                          nullable: true
                        sentiment:
                          type: boolean
                          nullable: true
                        tags:
                          type: array
                          items:
                            type: string
                        features:
                          type: object
                        deals:
                          type: object
                  meta:
                    type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  responses:
    BadRequest:
      description: Bad request - invalid parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: bad_request
              message: Invalid parameters
              details:
                missing_fields:
                  - file_name
    Unauthorized:
      description: Unauthorized - invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: unauthorized
              message: Invalid API key
    Forbidden:
      description: Forbidden - the API key's role cannot use this tool
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: forbidden
              message: >-
                Your role (member) does not have permission to perform this
                action.
    RateLimitExceeded:
      description: Too many requests - rate limit or applicable usage quota exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: rate_limit_exceeded
              message: >-
                Rate limit exceeded. Please retry after the reset time in the
                response headers.
      headers:
        X-RateLimit-Limit:
          schema:
            type: integer
          description: Requests allowed in the current 60-second window.
        X-RateLimit-Remaining:
          schema:
            type: integer
          description: Requests remaining in the current 60-second window.
        X-RateLimit-Reset:
          schema:
            type: integer
            format: int64
          description: Unix timestamp in milliseconds when the rate-limit window resets.
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: internal_error
              message: An unexpected error occurred
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code
              example: unauthorized
            message:
              type: string
              description: Human-readable error message
              example: Invalid API key
            details:
              type: object
              description: Additional error details
              additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key from Hindsight Settings → API keys. Use `Authorization: Bearer
        YOUR_API_KEY`. Newly created keys begin with `hs_`; existing keys remain
        supported until rotated or expired.

````