• Home
  • Features
  • Pricing
  • Blog
Sign InSign Up

Stop losing deals while you're stuck in spreadsheets. DealWave consolidates your entire deal analysis workflow into one lightning-fast platform.

© Copyright 2026 DealWave. All Rights Reserved.

About
  • Blog
Product
  • Features
  • Pricing
Legal
  • Terms of Service
  • Privacy Policy
  • Cookie Policy
  • Billing and Refund Policy
  • Getting started with Makerkit
    • Installing Dependencies
  • DealWave API
  • Authentication
    • Configuration

DealWave API

Create an API key, authenticate your first request, and choose the next endpoint to try.

DealWave API access requires Agentic. Create keys in Settings > API Keys:

  • Personal workspace: /settings/api-keys
  • Team workspace: /{account}/settings/api-keys

Name keys by environment or integration, such as Production GHL, Staging CRM, or Local development. New keys are shown once. Store the raw dw_sk_live_... value before closing the dialog because DealWave cannot show it again.

Authenticate

Send the key as a Bearer token.

curl https://app.dealwave.com/api/v1/analyze \
  -H "Authorization: Bearer $DEALWAVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"address":"123 Main St, Indianapolis, IN 46201"}'

TypeScript

const response = await fetch('https://app.dealwave.com/api/v1/analyze', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.DEALWAVE_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    address: '123 Main St, Indianapolis, IN 46201',
  }),
});

const payload = await response.json();

if (!response.ok) {
  throw new Error(`${payload.error.code}: ${payload.error.message}`);
}

Python

import os
import requests

response = requests.post(
    "https://app.dealwave.com/api/v1/analyze",
    headers={
        "Authorization": f"Bearer {os.environ['DEALWAVE_API_KEY']}",
        "Content-Type": "application/json",
    },
    json={"address": "123 Main St, Indianapolis, IN 46201"},
    timeout=30,
)

response.raise_for_status()
payload = response.json()

Key Lifecycle

Revoke unused keys in Settings > API Keys. Revoked keys stop authenticating immediately.

To rotate a key, create a replacement key, update the integration or secret manager, confirm the new key works, then revoke the old key.

Common Failures

StatusCodeMeaning
401invalid_api_keyMissing, malformed, invalid, revoked, or expired key.
403plan_requiredAPI access requires Agentic.
429rate_limit_exceededThe per-key rate limit was exceeded.

The current standard rate limit is 60 requests per minute per API key.

Next Endpoints

  • /score: score a deal with optional purchase price or ARV overrides.
  • /math: inspect the MAO and strategy calculation details.
  • /strategy: evaluate a specific exit strategy.
  • /analyze/batch: analyze up to 25 addresses synchronously with per-address failure isolation.
  1. Authenticate
    1. TypeScript
    2. Python
    3. Key Lifecycle
    4. Common Failures
    5. Next Endpoints