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

# Response Schema

> Complete API response structure and field reference

## Overview

This page documents the complete response structure for all BounceWatch API endpoints. Use this as a reference to understand exactly what data you'll receive.

<Info>
  All responses include a `success` boolean and follow a consistent structure. The API uses a **unified smart enrichment model** — there is no separate cached vs realtime mode.
</Info>

## API Flow

<Steps>
  <Step title="Request a domain">
    ```bash theme={null}
    GET /api/v1/company/stripe.com?enrich=business,funding
    ```

    Include your API key via `X-API-Key` header and a webhook URL via `X-Webhook-URL` header (or configure one in your API panel).
  </Step>

  <Step title="First request → 202 Accepted">
    New domain or data older than 24 hours: enrichment is queued. You receive a `batch_id` and tracking endpoints immediately.
  </Step>

  <Step title="Webhook delivers results">
    When enrichment completes (typically 2–10 min), we POST the results to your webhook URL with a `data_url` to fetch the full data.
  </Step>

  <Step title="Same domain within 24h → 200 OK">
    If you request the same domain again within 24 hours, cached data is returned **instantly at no additional cost** (0 credits).
  </Step>
</Steps>

***

## Response Structures

The API returns two different response structures depending on whether the domain needs fresh enrichment or has recent data available.

<Tabs>
  <Tab title="202 — Enrichment Queued">
    Returned when a new enrichment is triggered. Results will be delivered via webhook.

    ```json theme={null}
    {
      "success": true,
      "status": "processing",
      "batch_id": "batch_abc123xyz",
      "current_data": {
        "company": { ... }
      },
      "enrichment_status": "processing",
      "modules_requested": ["business", "funding"],
      "modules_count": 2,
      "webhook_notification": "enabled",
      "status_endpoint": "https://api.bouncewatch.com/api/v1/enrichment/batch_abc123xyz/status",
      "results_endpoint": "https://api.bouncewatch.com/api/v1/enrichment/batch_abc123xyz/results",
      "credits_reserved": 26,
      "message": "Enrichment jobs queued successfully. Fresh data will be sent to your webhook when ready.",
      "hint": "Results will be delivered to your webhook URL. You can also poll the status_endpoint to check progress."
    }
    ```

    | Field                  | Type    | Description                                             |
    | ---------------------- | ------- | ------------------------------------------------------- |
    | `batch_id`             | string  | Unique identifier for tracking this enrichment          |
    | `current_data`         | object  | Any existing (possibly stale) data for the domain       |
    | `enrichment_status`    | string  | Always `processing` for new enrichments                 |
    | `webhook_notification` | string  | `enabled` — confirms webhook delivery is configured     |
    | `status_endpoint`      | string  | Poll this URL to check enrichment progress              |
    | `results_endpoint`     | string  | Fetch completed results from this URL                   |
    | `credits_reserved`     | integer | Credits reserved upfront (refunded if enrichment fails) |
  </Tab>

  <Tab title="200 — Cached Data (Free)">
    Returned when the same domain was enriched within the last 24 hours. **No credits charged.**

    ```json theme={null}
    {
      "success": true,
      "data": {
        "company": { ... },
        "business": { ... },
        "funding": { ... }
      },
      "credits_used": 0,
      "credits_breakdown": {
        "base": 0,
        "enrichments": { "business": 0, "funding": 0 },
        "note": "No credits charged — 24-hour deduplication. Normal cost would be 26 credits."
      },
      "modules_included": ["base", "business", "funding"],
      "from_recent_enrichment": true,
      "credits_remaining": 4974,
      "dedup_note": "This domain was enriched within the last 24 hours. Cached data is returned at no charge."
    }
    ```

    | Field                    | Type    | Description                                          |
    | ------------------------ | ------- | ---------------------------------------------------- |
    | `data`                   | object  | Complete enrichment data, nested by module           |
    | `credits_used`           | integer | Always `0` for deduplicated responses                |
    | `credits_breakdown`      | object  | Shows all zeros with a `note` explaining normal cost |
    | `modules_included`       | array   | List of modules in the response                      |
    | `from_recent_enrichment` | boolean | `true` if data comes from a recent enrichment batch  |
    | `credits_remaining`      | integer | Your current credit balance                          |
    | `dedup_note`             | string  | Explains why no credits were charged                 |
  </Tab>
</Tabs>

<Info>
  **Deprecation notice:** If you pass `mode=realtime`, the request will still work but the response will include a `deprecation_notice` field. The `mode=cached` parameter returns **410 Gone**. Remove the `mode` parameter entirely — it is no longer needed.
</Info>

***

## Webhook Payload

When enrichment completes, this payload is POSTed to your webhook URL:

```json theme={null}
{
  "event": "enrichment.completed",
  "batch_id": "batch_abc123xyz",
  "domain": "stripe.com",
  "status": "completed",
  "requested_modules": ["business", "funding"],
  "requested_at": "2025-01-15T10:25:00Z",
  "completed_at": "2025-01-15T10:30:00Z",
  "duration_seconds": 300,
  "credits": {
    "reserved": 26,
    "used": 26,
    "refunded": 0
  },
  "data_url": "https://api.bouncewatch.com/api/v1/enrichment/batch_abc123xyz/results",
  "_meta": {
    "api_version": "2.0",
    "webhook_attempt": 1
  }
}
```

| Event                      | Description                                                   |
| -------------------------- | ------------------------------------------------------------- |
| `enrichment.completed`     | Data is ready — fetch it from `data_url`                      |
| `enrichment.failed`        | Enrichment failed — credits are refunded                      |
| `enrichment.no_data_found` | Domain exists but no enrichment data found — credits refunded |

<Warning>
  Use `data_url` to fetch the full enrichment results with your API key. The webhook payload itself does not contain the enrichment data — only metadata and the URL to retrieve it.
</Warning>

***

## Base Company Data (Always Included)

<ParamField body="data.company" type="object">
  Base company information, always included with every request (10 credits).
</ParamField>

```json theme={null}
{
  "data": {
    "company": {
      // Identity
      "name": "Stripe",
      "description": "Financial infrastructure platform for the internet",
      "founded_year": 2010,
      "company_status": "active",

      // Contact
      "phone": "+1-888-926-2289",
      "email": "support@stripe.com",
      "domain": "stripe.com",
      "linkedin_url": "https://www.linkedin.com/company/stripe",
      "facebook_url": "https://www.facebook.com/stripe",
      "twitter_url": "https://twitter.com/stripe",

      // Location
      "headquarter_country": "United States",
      "headquarter_city": "San Francisco",
      "registered_address": "354 Oyster Point Blvd, South San Francisco, CA 94080",
      "office_locations": [
        "London, United Kingdom",
        "Dublin, Ireland",
        "Singapore"
      ],

      // Team Size
      "employee_count": 8000,
      "employee_range": "5001-10000",

      // Legal Information (UK Companies House data if available)
      "legal_name": "Stripe Payments UK Ltd",
      "company_number": "07920850",
      "company_type": "ltd",
      "date_of_creation": "2012-01-23",
      "jurisdiction": "england-wales",
      "sic_codes": ["62012", "64999"]
    }
  }
}
```

### Base Company Fields

| Field                 | Type    | Description                                        |
| --------------------- | ------- | -------------------------------------------------- |
| `name`                | string  | Company display name                               |
| `description`         | string  | Company description/about                          |
| `founded_year`        | integer | Year the company was founded                       |
| `company_status`      | string  | Operational status: `active`, `acquired`, `closed` |
| `phone`               | string  | Primary phone number                               |
| `email`               | string  | Primary contact email                              |
| `domain`              | string  | Company website domain                             |
| `linkedin_url`        | string  | LinkedIn company page URL                          |
| `facebook_url`        | string  | Facebook page URL                                  |
| `twitter_url`         | string  | Twitter/X profile URL                              |
| `headquarter_country` | string  | HQ country name                                    |
| `headquarter_city`    | string  | HQ city name                                       |
| `registered_address`  | string  | Official registered address                        |
| `office_locations`    | array   | List of other office locations                     |
| `employee_count`      | integer | Exact employee count (if available)                |
| `employee_range`      | string  | Employee range bucket                              |
| `legal_name`          | string  | Official legal entity name                         |
| `company_number`      | string  | Company registration number                        |
| `company_type`        | string  | Legal entity type                                  |
| `date_of_creation`    | string  | Company registration date                          |
| `jurisdiction`        | string  | Legal jurisdiction                                 |
| `sic_codes`           | array   | Industry classification codes                      |

***

## Business Enrichment (+6 credits)

<ParamField query="enrich" type="string">
  Add `business` to the enrich parameter: `?enrich=business`
</ParamField>

```json theme={null}
{
  "data": {
    "business": {
      // Industry Classification
      "industries_count": 3,
      "industries": ["Financial Services", "FinTech", "Payments"],
      
      // Business Model
      "business_model": ["B2B", "SaaS", "Platform"],
      "revenue_model": ["Transaction Fees", "Subscription"],
      "target_audience": "Developers and businesses of all sizes",
      
      // Taxonomy
      "taxonomy_count": 5,
      "taxonomy": ["Payment Processing", "API Platform", "Developer Tools", "E-commerce", "SaaS"],
      
      // Services
      "services_count": 4,
      "services": [
        {
          "name": "Payment Processing",
          "description": "Accept payments online and in-person"
        },
        {
          "name": "Billing",
          "description": "Subscription and invoicing platform"
        },
        {
          "name": "Connect",
          "description": "Payments for platforms and marketplaces"
        },
        {
          "name": "Atlas",
          "description": "Startup incorporation service"
        }
      ],
      
      // Certifications
      "certificates_count": 2,
      "certificates_and_compliance": [
        {
          "name": "PCI DSS Level 1",
          "description": "Payment Card Industry Data Security Standard"
        },
        {
          "name": "SOC 2 Type II",
          "description": "Service Organization Control certification"
        }
      ],
      
      // Market Positioning
      "market_problems_count": 2,
      "market_problems": [
        {
          "title": "Complex Payment Integration",
          "description": "Businesses struggle with fragmented payment systems"
        },
        {
          "title": "Global Expansion",
          "description": "Difficulty accepting payments across borders"
        }
      ],
      
      // Geographic Focus
      "target_countries_count": 3,
      "target_countries": [
        {
          "country": "United States",
          "country_code": "US",
          "ai_reasoning": "Primary market with strong developer ecosystem",
          "confidence": "high"
        },
        {
          "country": "United Kingdom",
          "country_code": "GB",
          "ai_reasoning": "Major European financial hub",
          "confidence": "high"
        },
        {
          "country": "Germany",
          "country_code": "DE",
          "ai_reasoning": "Largest European economy",
          "confidence": "medium"
        }
      ],
      
      "potential_target_countries_count": 2,
      "potential_target_countries": [
        {
          "country": "Brazil",
          "country_code": "BR",
          "ai_reasoning": "Growing e-commerce market",
          "confidence": "medium"
        },
        {
          "country": "India",
          "country_code": "IN",
          "ai_reasoning": "Large developer community and growing digital payments",
          "confidence": "medium"
        }
      ]
    }
  }
}
```

### Business Fields

| Field                              | Type    | Description                                               |
| ---------------------------------- | ------- | --------------------------------------------------------- |
| `industries_count`                 | integer | Number of industries                                      |
| `industries`                       | array   | Industry classifications                                  |
| `business_model`                   | array   | Business model types: B2B, B2C, SaaS, Platform, etc.      |
| `revenue_model`                    | array   | Revenue model types: Subscription, Transaction Fees, etc. |
| `target_audience`                  | string  | Primary customer description                              |
| `taxonomy_count`                   | integer | Number of taxonomy tags                                   |
| `taxonomy`                         | array   | Business category tags                                    |
| `services_count`                   | integer | Number of services                                        |
| `services`                         | array   | Products and services offered                             |
| `services[].name`                  | string  | Service name                                              |
| `services[].description`           | string  | Service description                                       |
| `certificates_count`               | integer | Number of certifications                                  |
| `certificates_and_compliance`      | array   | Certifications and compliance                             |
| `market_problems_count`            | integer | Number of market problems                                 |
| `market_problems`                  | array   | Problems the company solves                               |
| `target_countries_count`           | integer | Number of target countries                                |
| `target_countries`                 | array   | Current focus countries                                   |
| `potential_target_countries_count` | integer | Number of potential countries                             |
| `potential_target_countries`       | array   | Future expansion targets                                  |

***

## Technology Enrichment (+4 credits)

<ParamField query="enrich" type="string">
  Add `technology` to the enrich parameter: `?enrich=technology`
</ParamField>

```json theme={null}
{
  "data": {
    "technology": {
      "total_technologies": 47,
      "categories_count": 12,
      
      // Flat list of all technology names
      "technologies": [
        "React", "Node.js", "Ruby", "PostgreSQL", "Redis",
        "AWS", "Kubernetes", "Docker", "Terraform", "Datadog"
      ],
      
      // Grouped by category
      "technology_stack": {
        "JavaScript Frameworks": [
          {
            "name": "React",
            "description": "A JavaScript library for building user interfaces"
          },
          {
            "name": "Next.js",
            "description": "React framework for production"
          }
        ],
        "Backend": [
          {
            "name": "Node.js",
            "description": "JavaScript runtime environment"
          },
          {
            "name": "Ruby on Rails",
            "description": "Server-side web application framework"
          }
        ],
        "Database": [
          {
            "name": "PostgreSQL",
            "description": "Open source relational database"
          },
          {
            "name": "Redis",
            "description": "In-memory data structure store"
          }
        ],
        "Cloud Infrastructure": [
          {
            "name": "Amazon Web Services",
            "description": "Cloud computing platform"
          },
          {
            "name": "Google Cloud Platform",
            "description": "Cloud computing services"
          }
        ],
        "DevOps": [
          {
            "name": "Kubernetes",
            "description": "Container orchestration platform"
          },
          {
            "name": "Docker",
            "description": "Container platform"
          }
        ],
        "Analytics": [
          {
            "name": "Segment",
            "description": "Customer data platform"
          },
          {
            "name": "Amplitude",
            "description": "Product analytics platform"
          }
        ]
      },
      
      "last_updated": "2025-12-15T10:30:00Z"
    }
  }
}
```

### Technology Fields

| Field                                      | Type    | Description                           |
| ------------------------------------------ | ------- | ------------------------------------- |
| `total_technologies`                       | integer | Total number of technologies detected |
| `categories_count`                         | integer | Number of technology categories       |
| `technologies`                             | array   | Flat list of all technology names     |
| `technology_stack`                         | object  | Technologies grouped by category      |
| `technology_stack[category]`               | array   | List of technologies in category      |
| `technology_stack[category][].name`        | string  | Technology name                       |
| `technology_stack[category][].description` | string  | Technology description                |
| `last_updated`                             | string  | When technology data was last updated |

***

## Funding Enrichment (+10 credits)

<ParamField query="enrich" type="string">
  Add `funding` to the enrich parameter: `?enrich=funding`
</ParamField>

```json theme={null}
{
  "data": {
    "funding": {
      // Summary
      "total_funding": 8700000000,
      "funding_stage": "Series I",
      "last_funding_date": "2023-03-15",
      "funding_round_count": 12,
      "last_valuation": 50000000000,
      
      // Investment History (newest first)
      "investment_history": [
        {
          "date": "2023-03-15",
          "stage": "Series I",
          "amount": 6500000000,
          "amount_usd": 6500000000,
          "currency": "USD",
          "valuation": 50000000000,
          "valuation_usd": 50000000000,
          "investors": ["Andreessen Horowitz", "Sequoia Capital", "GIC"]
        },
        {
          "date": "2021-03-14",
          "stage": "Series H",
          "amount": 600000000,
          "amount_usd": 600000000,
          "currency": "USD",
          "valuation": 95000000000,
          "valuation_usd": 95000000000,
          "investors": ["Sequoia Capital", "Allianz X", "Fidelity"]
        }
      ],
      
      // All Investors
      "investors_count": 42,
      "investors": [
        "Sequoia Capital",
        "Andreessen Horowitz",
        "General Catalyst",
        "Founders Fund",
        "Tiger Global",
        "GIC",
        "Fidelity Investments"
      ],
      
      // Notable Investors (with details)
      "notable_investors_count": 5,
      "notable_investors": [
        {
          "name": "Sequoia Capital",
          "logo": "https://bouncewatch.com/storage/investors/sequoia.png",
          "domain": "sequoiacap.com"
        },
        {
          "name": "Andreessen Horowitz",
          "logo": "https://bouncewatch.com/storage/investors/a16z.png",
          "domain": "a16z.com"
        }
      ],
      
      "lead_investors": [],
      "acquisitions": []
    }
  }
}
```

### Funding Fields

| Field                                | Type    | Description                                |
| ------------------------------------ | ------- | ------------------------------------------ |
| `total_funding`                      | integer | Total funding amount in USD                |
| `funding_stage`                      | string  | Current/last funding stage                 |
| `last_funding_date`                  | string  | Date of most recent funding (Y-m-d format) |
| `funding_round_count`                | integer | Total number of funding rounds             |
| `last_valuation`                     | number  | Most recent valuation in USD (nullable)    |
| `investment_history`                 | array   | All funding rounds (newest first)          |
| `investment_history[].date`          | string  | Round date (Y-m-d format)                  |
| `investment_history[].stage`         | string  | Round type (Seed, Series A, etc.)          |
| `investment_history[].amount`        | number  | Amount raised (original currency)          |
| `investment_history[].amount_usd`    | number  | Amount in USD                              |
| `investment_history[].currency`      | string  | Original currency code                     |
| `investment_history[].valuation`     | number  | Valuation at this round (nullable)         |
| `investment_history[].valuation_usd` | number  | Valuation in USD (nullable)                |
| `investment_history[].investors`     | array   | Investors in this round                    |
| `investors_count`                    | integer | Total unique investors                     |
| `investors`                          | array   | List of all investor names                 |
| `notable_investors_count`            | integer | Number of notable investors                |
| `notable_investors`                  | array   | Notable investors with details             |
| `notable_investors[].name`           | string  | Investor name                              |
| `notable_investors[].logo`           | string  | Investor logo URL                          |
| `notable_investors[].domain`         | string  | Investor website domain                    |

***

## Team Enrichment (+6 credits)

<ParamField query="enrich" type="string">
  Add `team` to the enrich parameter: `?enrich=team`
</ParamField>

```json theme={null}
{
  "data": {
    "team": {
      // Team Members
      "team_count": 8,
      "team_members": [
        {
          "name": "Patrick Collison",
          "position": "CEO & Co-founder",
          "linkedin_url": "https://www.linkedin.com/in/patrickcollison",
          "country": "United States",
          "city": "San Francisco",
          "nationality": "Irish",
          "biography": "Patrick Collison is the co-founder and CEO of Stripe...",
          "experience": [
            {
              "company": "Stripe",
              "position": "CEO & Co-founder",
              "description": "Leading the company's vision and strategy",
              "start_date": "2010-01-01",
              "end_date": null,
              "is_current": true,
              "location": "United States"
            },
            {
              "company": "Auctomatic",
              "position": "Co-founder",
              "description": "Online auction management",
              "start_date": "2007-01-01",
              "end_date": "2008-01-01",
              "is_current": false,
              "location": "Canada"
            }
          ],
          "education": [
            {
              "school": "MIT",
              "degree": "Computer Science (did not complete)",
              "description": null,
              "start_date": "2009-01-01",
              "end_date": "2010-01-01",
              "location": "United States"
            }
          ]
        }
      ],
      
      // Employee Growth Metrics
      "monthly_growth": {
        "change": 120,
        "percentage": 1.5,
        "from": 7880,
        "to": 8000,
        "period_start": "November 2025",
        "period_end": "December 2025"
      },
      "three_month_growth": {
        "change": 400,
        "percentage": 5.3,
        "from": 7600,
        "to": 8000,
        "period_start": "September 2025",
        "period_end": "December 2025"
      },
      "six_month_growth": {
        "change": 800,
        "percentage": 11.1,
        "from": 7200,
        "to": 8000,
        "period_start": "June 2025",
        "period_end": "December 2025"
      },
      
      // Historical Data
      "historical_employee_data": [
        {"month_name": "December 2025", "employee_count": 8000},
        {"month_name": "November 2025", "employee_count": 7880},
        {"month_name": "October 2025", "employee_count": 7760}
      ],
      
      // Hiring Activity
      "job_listings_count": 145,
      "job_titles_count": 89,
      "job_titles": [
        "Software Engineer",
        "Product Manager",
        "Data Scientist",
        "Solutions Architect"
      ],
      "job_locations_count": 12,
      "job_locations": [
        "San Francisco",
        "New York",
        "London",
        "Dublin",
        "Singapore"
      ],
      "job_countries_count": 8,
      "job_countries": [
        "United States",
        "United Kingdom",
        "Ireland",
        "Singapore",
        "Japan"
      ],
      "hiring_status": "actively_hiring",
      
      // Key Role Openings
      "key_role_openings_count": 5,
      "key_role_openings": [
        {
          "title": "Head of Engineering, Payments",
          "location": "San Francisco",
          "country": "United States",
          "posted_date": "2025-12-10"
        },
        {
          "title": "VP of Product",
          "location": "Remote",
          "country": "United States",
          "posted_date": "2025-12-05"
        }
      ]
    }
  }
}
```

### Team Fields

| Field                         | Type    | Description                            |
| ----------------------------- | ------- | -------------------------------------- |
| `team_count`                  | integer | Number of team members in database     |
| `team_members`                | array   | Team member profiles                   |
| `team_members[].name`         | string  | Full name                              |
| `team_members[].position`     | string  | Current job title                      |
| `team_members[].linkedin_url` | string  | LinkedIn profile URL                   |
| `team_members[].country`      | string  | Current country                        |
| `team_members[].city`         | string  | Current city                           |
| `team_members[].nationality`  | string  | Nationality                            |
| `team_members[].biography`    | string  | Bio/about text                         |
| `team_members[].experience`   | array   | Work experience history                |
| `team_members[].education`    | array   | Education history                      |
| `monthly_growth`              | object  | Month-over-month employee change       |
| `three_month_growth`          | object  | 3-month employee change                |
| `six_month_growth`            | object  | 6-month employee change                |
| `historical_employee_data`    | array   | Monthly employee counts                |
| `job_listings_count`          | integer | Total open positions                   |
| `job_titles_count`            | integer | Unique job titles                      |
| `job_titles`                  | array   | List of job titles                     |
| `job_locations_count`         | integer | Unique hiring locations                |
| `job_locations`               | array   | Cities with open positions             |
| `job_countries_count`         | integer | Countries with open positions          |
| `job_countries`               | array   | Countries hiring in                    |
| `hiring_status`               | string  | `actively_hiring`, `hiring`, `passive` |
| `key_role_openings_count`     | integer | Leadership positions open              |
| `key_role_openings`           | array   | Leadership/senior positions            |

***

## Signals Enrichment (+16 credits)

<ParamField query="enrich" type="string">
  Add `signals` to the enrich parameter: `?enrich=signals`
</ParamField>

<Info>
  **Highlights** are AI-detected signals from LinkedIn posts and news articles. Each highlight includes structured entities (partner names, product names, cities, etc.) extracted from the content.
</Info>

```json theme={null}
{
  "data": {
    "signals": {
      // Highlights (Recent Activity/News)
      "highlights_count": 12,
      "highlights": [
        {
          "type": "funding",
          "title": "Raised $6.5B Series I",
          "date": "March 15, 2023",
          "description": "Secured Series I funding of $6.5B"
        },
        {
          "type": "business",
          "title": "Partnership Announced",
          "date": "February 2023",
          "description": "Stripe partners with Amazon for payment processing",
          "entities": {
            "partner_name": "Amazon",
            "partnership_type": "strategic collaboration"
          }
        },
        {
          "type": "product",
          "title": "New Product Launched",
          "date": "January 2023",
          "description": "Stripe launches Stripe Tax for automated tax calculation",
          "entities": {
            "product_name": "Stripe Tax",
            "category": "Tax Automation"
          }
        },
        {
          "type": "expansion",
          "title": "Expansion Announced",
          "date": "January 2023",
          "description": "Opening new offices in Toronto and Singapore",
          "entities": {
            "new_city": "Toronto, Singapore",
            "expansion_type": "office opening"
          }
        },
        {
          "type": "traction",
          "title": "Website traffic increased 15%",
          "date": "December 2024",
          "description": "Monthly website visitors increased by 15%"
        },
        {
          "type": "hiring",
          "title": "Team size increased 8%",
          "date": "December 2024",
          "description": "Employee count increased by 8%"
        }
      ],
      
      // LinkedIn Metrics
      "linkedin_metrics": {
        "followers": 1250000,
        "change_percentage": 3.2,
        "last_post_date": "2025-12-20",
        "period_start": "2025-11-01",
        "period_end": "2025-12-01"
      },
      
      // AI-Powered Insights
      "ai_insights": {
        "insight": "Stripe continues to demonstrate strong market positioning with consistent product launches and strategic partnerships. The recent Series I funding at $50B valuation, though lower than previous peaks, indicates investor confidence in long-term growth.",
        "growth_momentum": "high",
        "trajectory": "accelerating",
        "key_indicators": [
          "New Funding Received",
          "Partnership Announced",
          "Expansion Announced",
          "Hiring For Key Role"
        ],
        "next_likely_move": "Based on recent hiring patterns and expansion announcements, Stripe is likely preparing for international expansion, particularly in emerging markets."
      }
    }
  }
}
```

### Signals Fields

| Field                                | Type    | Description                                                  |
| ------------------------------------ | ------- | ------------------------------------------------------------ |
| `highlights_count`                   | integer | Number of highlights                                         |
| `highlights`                         | array   | Recent company activity/signals                              |
| `highlights[].type`                  | string  | Signal type (see Signal Types below)                         |
| `highlights[].title`                 | string  | Signal title                                                 |
| `highlights[].description`           | string  | Detailed description                                         |
| `highlights[].date`                  | string  | When it occurred (e.g., "March 15, 2023" or "December 2024") |
| `highlights[].source`                | string  | Data source: `linkedin_post` or `news_article` (optional)    |
| `highlights[].entities`              | object  | Extracted entities from the signal (optional)                |
| `linkedin_metrics`                   | object  | LinkedIn follower metrics                                    |
| `linkedin_metrics.followers`         | integer | Current follower count                                       |
| `linkedin_metrics.change_percentage` | number  | Change percentage over period                                |
| `linkedin_metrics.last_post_date`    | string  | Date of last LinkedIn post                                   |
| `ai_insights.insight`                | string  | AI-generated summary                                         |
| `ai_insights.growth_momentum`        | string  | `high`, `medium`, `low`                                      |
| `ai_insights.trajectory`             | string  | `accelerating`, `steady`, `declining`                        |
| `ai_insights.key_indicators`         | array   | Key signals driving assessment                               |
| `ai_insights.next_likely_move`       | string  | AI prediction                                                |

### Signal Types

BounceWatch tracks various signal types across multiple categories. The `type` field in highlights indicates the signal category:

<AccordionGroup>
  <Accordion title="Funding Signals" icon="dollar-sign">
    * `funding` - New Funding Received, Grant Received, IPO Announced
  </Accordion>

  <Accordion title="Business & Partnerships" icon="handshake">
    * `business` - Partnership Announced, Major Customer Win
    * `recognition` - Accepted to Program, Award Received, Certification Achieved
  </Accordion>

  <Accordion title="Product & Growth" icon="rocket">
    * `product` - New Product Launched, New Feature Launched, Mobile App Launched
    * `traction` - Growth Metrics Shared, Revenue Metrics Shared, Website/LinkedIn Traffic Changes
  </Accordion>

  <Accordion title="Expansion" icon="globe">
    * `expansion` - Expansion Announced, New Office Opened
  </Accordion>

  <Accordion title="Team Changes" icon="users">
    * `hiring` - Key Hire Announced, Team Size Increased, Open Positions
    * `team_change` - Key Exit Announced
    * `negative` - Layoffs Announced, Shutdown Announced
  </Accordion>

  <Accordion title="Strategic & Regulatory" icon="scale-balanced">
    * `milestone` - Regulatory Approval
    * `strategy` - Pivot Announced
    * `acquisition` - Acquisition Announced, Acquisition Made
    * `media` - Featured on News
  </Accordion>

  <Accordion title="Rumors & Intents" icon="comment-dots">
    * `rumor` - Acquisition Rumor, IPO Rumor, Partnership Talks, Expansion Plan, Layoff Rumor, Leadership Change Rumor
    * `risk` - Shutdown Risk
  </Accordion>

  <Accordion title="Events" icon="calendar">
    * `event` - Event Participation
  </Accordion>
</AccordionGroup>

***

## Competitors Enrichment (+8 credits)

<ParamField query="enrich" type="string">
  Add `competitors` to the enrich parameter: `?enrich=competitors`
</ParamField>

```json theme={null}
{
  "data": {
    "competitors": {
      "competitors_count": 12,
      "similar_companies": [
        {
          "name": "Adyen",
          "domain": "adyen.com",
          "slogan": "The payments platform built for growth",
          "industries": ["FinTech", "Payments"],
          "country": "Netherlands",
          "funding_stage": "Public",
          "total_funding": 266000000,
          "employee_count": 3500,
          "employee_range": "1001-5000"
        },
        {
          "name": "Square",
          "domain": "squareup.com",
          "slogan": "Start selling today",
          "industries": ["FinTech", "Payments", "Point of Sale"],
          "country": "United States",
          "funding_stage": "Public",
          "total_funding": 590000000,
          "employee_count": 8000,
          "employee_range": "5001-10000"
        },
        {
          "name": "Braintree",
          "domain": "braintreepayments.com",
          "slogan": "A PayPal service",
          "industries": ["FinTech", "Payments"],
          "country": "United States",
          "funding_stage": "Acquired",
          "total_funding": 69000000,
          "employee_count": null,
          "employee_range": "201-500"
        }
      ]
    }
  }
}
```

### Competitors Fields

| Field                                | Type    | Description                 |
| ------------------------------------ | ------- | --------------------------- |
| `competitors_count`                  | integer | Number of similar companies |
| `similar_companies`                  | array   | List of similar companies   |
| `similar_companies[].name`           | string  | Company name                |
| `similar_companies[].domain`         | string  | Company domain              |
| `similar_companies[].slogan`         | string  | Company tagline             |
| `similar_companies[].industries`     | array   | Industry classifications    |
| `similar_companies[].country`        | string  | HQ country                  |
| `similar_companies[].funding_stage`  | string  | Current funding stage       |
| `similar_companies[].total_funding`  | integer | Total funding in USD        |
| `similar_companies[].employee_count` | integer | Exact employee count        |
| `similar_companies[].employee_range` | string  | Employee range bucket       |

***

## Full Response Example

Here's a complete example with all modules enabled:

```bash theme={null}
GET /api/v1/company/stripe.com?enrich=business,technology,funding,team,signals,competitors
```

<Accordion title="View Full Response (60 credits)" icon="code">
  ```json theme={null}
  {
    "success": true,
    "data": {
      "company": {
        "name": "Stripe",
        "description": "Financial infrastructure platform for the internet",
        "founded_year": 2010,
        "company_status": "active",
        "phone": "+1-888-926-2289",
        "email": "support@stripe.com",
        "domain": "stripe.com",
        "linkedin_url": "https://www.linkedin.com/company/stripe",
        "facebook_url": "https://www.facebook.com/stripe",
        "twitter_url": "https://twitter.com/stripe",
        "headquarter_country": "United States",
        "headquarter_city": "San Francisco",
        "registered_address": null,
        "office_locations": ["London", "Dublin", "Singapore", "Tokyo"],
        "employee_count": 8000,
        "employee_range": "5001-10000",
        "legal_name": null,
        "company_number": null,
        "company_type": null,
        "date_of_creation": null,
        "jurisdiction": null,
        "sic_codes": []
      },
      "business": {
        "industries_count": 3,
        "industries": ["Financial Services", "FinTech", "Payments"],
        "business_model": ["B2B", "SaaS", "Platform"],
        "revenue_model": ["Transaction Fees", "Subscription"],
        "target_audience": "Developers and businesses",
        "services_count": 4,
        "services": [...],
        "certificates_count": 2,
        "certificates_and_compliance": [...],
        "taxonomy_count": 5,
        "taxonomy": [...],
        "market_problems_count": 2,
        "market_problems": [...],
        "target_countries_count": 3,
        "target_countries": [...],
        "potential_target_countries_count": 2,
        "potential_target_countries": [...]
      },
      "technology": {
        "total_technologies": 47,
        "categories_count": 12,
        "technologies": [...],
        "technology_stack": {...},
        "last_updated": "2025-12-15T10:30:00Z"
      },
      "funding": {
        "total_funding": 8700000000,
        "funding_stage": "Series I",
        "last_funding_date": "2023-03-15",
        "funding_round_count": 12,
        "last_valuation": 50000000000,
        "investment_history": [...],
        "investors_count": 42,
        "investors": [...],
        "notable_investors_count": 5,
        "notable_investors": [...],
        "lead_investors": [],
        "acquisitions": []
      },
      "team": {
        "team_count": 8,
        "team_members": [...],
        "monthly_growth": {...},
        "three_month_growth": {...},
        "six_month_growth": {...},
        "historical_employee_data": [...],
        "job_listings_count": 145,
        "job_titles_count": 89,
        "job_titles": [...],
        "job_locations_count": 12,
        "job_locations": [...],
        "job_countries_count": 8,
        "job_countries": [...],
        "hiring_status": "actively_hiring",
        "key_role_openings_count": 5,
        "key_role_openings": [...]
      },
      "signals": {
        "highlights_count": 12,
        "highlights": [...],
        "linkedin_metrics": {...},
        "ai_insights": {...}
      },
      "competitors": {
        "competitors_count": 12,
        "similar_companies": [...]
      }
    },
    "credits_used": 60,
    "credits_breakdown": {
      "base": 10,
      "enrichments": {
        "business": 6,
        "technology": 4,
        "funding": 10,
        "team": 6,
        "signals": 16,
        "competitors": 8
      }
    },
    "modules_included": ["base", "business", "technology", "funding", "team", "signals", "competitors"],
    "from_recent_enrichment": false,
    "credits_remaining": 4940
  }
  ```
</Accordion>

<Note>
  The example above shows a **first-time enrichment result** fetched from the `results_endpoint` after webhook delivery. For **deduplicated responses** (same domain within 24h), `credits_used` will be `0` and the `credits_breakdown` will show all zeros with a `note` field.
</Note>

***

## Error Responses

<Info>
  All error responses include `"success": false` and a human-readable `message`. Most also include `hint` or `suggestions` to help you resolve the issue.
</Info>

<Tabs>
  <Tab title="400 — Bad Request">
    ```json theme={null}
    {
      "success": false,
      "message": "Webhook URL is required for enrichment requests",
      "hint": "Configure a webhook URL in your API panel or provide it via X-Webhook-URL header.",
      "quick_test": "For quick testing, get a free webhook URL from https://webhook.site",
      "documentation": "https://docs.bouncewatch.com/webhooks"
    }
    ```
  </Tab>

  <Tab title="402 — Insufficient Credits">
    ```json theme={null}
    {
      "success": false,
      "message": "Insufficient credits",
      "credits_needed": 26,
      "credits_available": 5
    }
    ```
  </Tab>

  <Tab title="409 — Conflict / Cooldown">
    There are three 409 scenarios:

    **1. Domain in 24h cooldown** — domain was recently enriched:

    ```json theme={null}
    {
      "success": false,
      "message": "This domain was recently enriched. Cached data is available at no charge via the main endpoint.",
      "hint": "Request GET /api/v1/company/stripe.com again to receive cached data instantly for free.",
      "cooldown_expires_at": "2025-01-16T10:30:00Z",
      "hours_remaining": 18.5,
      "previous_batch_id": "batch_abc123xyz",
      "results_endpoint": "https://api.bouncewatch.com/api/v1/enrichment/batch_abc123xyz/results"
    }
    ```

    **2. Enrichment already in progress** — your batch is running:

    ```json theme={null}
    {
      "success": false,
      "message": "An enrichment is already in progress for this domain",
      "batch_id": "batch_abc123xyz",
      "status_endpoint": "https://api.bouncewatch.com/api/v1/enrichment/batch_abc123xyz/status",
      "results_endpoint": "https://api.bouncewatch.com/api/v1/enrichment/batch_abc123xyz/results",
      "hint": "Please wait for the current enrichment to complete. Results will be delivered via webhook."
    }
    ```

    **3. Enrichment already in progress** — another user's batch is running:

    ```json theme={null}
    {
      "success": false,
      "message": "An enrichment is already in progress for this domain",
      "hint": "Please wait for the current enrichment to complete and try again shortly."
    }
    ```

    <Note>Scenario 1 includes a `Retry-After` header with seconds until the cooldown expires. Scenarios 2-3 indicate a running enrichment — wait for it to finish or poll the status endpoint (if provided).</Note>
  </Tab>

  <Tab title="410 — Gone (Deprecated)">
    ```json theme={null}
    {
      "success": false,
      "message": "The cached mode has been deprecated and removed.",
      "migration_guide": {
        "change": "Remove the mode=cached parameter from your requests.",
        "how_it_works": "All requests now trigger realtime enrichment automatically. If the same domain was enriched within the last 24 hours, you will receive cached data instantly at no additional cost.",
        "webhook_required": "A webhook URL is required for new enrichments.",
        "example_request": "GET /api/v1/company/stripe.com?enrich=funding,team"
      }
    }
    ```
  </Tab>

  <Tab title="429 — Rate Limited">
    ```json theme={null}
    {
      "success": false,
      "message": "Rate limit exceeded",
      "retry_after": 60
    }
    ```

    <Note>This is for actual rate limiting only — domain cooldowns use 409.</Note>
  </Tab>
</Tabs>

### Error Code Reference

| HTTP Code | When            | Description                                                                 |
| --------- | --------------- | --------------------------------------------------------------------------- |
| **400**   | Invalid request | Missing webhook URL, invalid domain, invalid modules                        |
| **401**   | Auth failure    | API key is invalid, missing, or disabled                                    |
| **402**   | No credits      | Insufficient credits for the requested modules                              |
| **409**   | Conflict        | Enrichment already in progress, domain in 24h cooldown, or no-data cooldown |
| **410**   | Deprecated      | `mode=cached` parameter used — removed from API                             |
| **429**   | Rate limited    | Too many requests per minute (check your plan limits)                       |

<Card title="API Overview" icon="book" href="/api-reference/overview">
  Learn about authentication, rate limits, and API key management →
</Card>
