Cold DM CalculatorUse Calculator

Forecasting API

Add cold DM campaign forecasting to your own SaaS dashboard, internal tool, or reporting pipeline. One endpoint, JSON in, a full funnel forecast out — the same engine that powers the on-site calculator.

Authentication

Requests are authenticated with a bearer API key issued on the API plan. Keys are shown once at creation and are never stored in raw form. Pass the key in the Authorization header. Keep keys server-side — never embed them in client-side code.

Request

POST /api/v1/forecast — rates are percentages (0–100); seenRate and monthlyRepeat are optional.

POST https://www.colddmcalculator.com/api/v1/forecast
Authorization: Bearer cdm_live_xxxxxxxxxxxx_xxxxxxxx
Content-Type: application/json

{
  "dmsSent": 1500,
  "seenRate": 70,
  "replyRate": 5,
  "positiveReplyRate": 30,
  "bookingRate": 40,
  "closeRate": 20,
  "averageClientValue": 2000,
  "campaignCost": 500,
  "monthlyRepeat": true
}

Response

{
  "input": { "...": "echoed, validated input" },
  "forecast": {
    "estimatedSeen": 1050,
    "estimatedReplies": 52.5,
    "estimatedPositiveReplies": 15.75,
    "estimatedBookedCalls": 6.3,
    "estimatedClients": 1.26,
    "estimatedRevenue": 2520,
    "estimatedProfit": 2020,
    "roiMultiple": 5.04,
    "costPerBookedCall": 79.37,
    "costPerClient": 396.83,
    "revenuePerDm": 1.68,
    "revenuePerReply": 48,
    "breakEvenDms": 298,
    "annualizedPipelineValue": 30240,
    "riskScore": 16,
    "riskLevel": "low",
    "recommendations": ["..."]
  },
  "disclaimer": "Forecasts are estimates based on user-provided assumptions. Results are not guaranteed."
}

JavaScript example

const res = await fetch("https://www.colddmcalculator.com/api/v1/forecast", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.COLDDM_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    dmsSent: 1500,
    replyRate: 5,
    positiveReplyRate: 30,
    bookingRate: 40,
    closeRate: 20,
    averageClientValue: 2000,
    campaignCost: 500,
  }),
});

const { forecast } = await res.json();
console.log(forecast.estimatedClients, forecast.roiMultiple);

Python example

import os
import requests

res = requests.post(
    "https://www.colddmcalculator.com/api/v1/forecast",
    headers={"Authorization": f"Bearer {os.environ['COLDDM_API_KEY']}"},
    json={
        "dmsSent": 1500,
        "replyRate": 5,
        "positiveReplyRate": 30,
        "bookingRate": 40,
        "closeRate": 20,
        "averageClientValue": 2000,
        "campaignCost": 500,
    },
    timeout=15,
)
res.raise_for_status()
forecast = res.json()["forecast"]
print(forecast["estimatedClients"], forecast["roiMultiple"])

Error codes

StatusCodeMeaning
400invalid_jsonRequest body was not valid JSON.
401unauthorizedMissing or invalid API key.
422validation_failedOne or more inputs are invalid — see `details`.
429rate_limitedToo many requests in a short window.
405method_not_allowedUse POST — GET is not supported.

Get API access

The API plan includes 25,000 forecasts per month, API key management, and priority support for $99/month.

Forecasts are estimates based on user-provided assumptions. Results are not guaranteed. The API forecasts campaign math — it does not send DMs or interact with any social platform.