curl https://api.v2.dealmachine.com/v1/plans
const response = await fetch('https://api.v2.dealmachine.com/v1/plans');
const { plans } = await response.json();
for (const plan of plans) {
console.log(plan.name, plan.stripe_price_ids.monthly);
}
import requests
response = requests.get('https://api.v2.dealmachine.com/v1/plans')
plans = response.json()['plans']
for plan in plans:
print(plan['name'], plan['stripe_price_ids']['monthly'])
{
"plans": [
{
"id": "prod_UXvhA0ZjLHucgF",
"name": "Basic",
"description": "For solo investors and small teams hunting off-market deals",
"type": "solo",
"pricing": {
"currency": "usd",
"monthly_price_cents": 9900,
"annual_price_cents": 99000,
"is_per_user": true
},
"credits": {
"enrichment_per_month": 10000,
"enrichment_per_year": 120000,
"ai_per_month": 25000000
},
"features": ["Nationwide property & owner data", "Saved searches & filters"],
"stripe_price_ids": {
"monthly": "price_xxx_monthly",
"annual": "price_xxx_annual"
},
"seats": {
"min": 1,
"max": 6
}
}
],
"free_tier": {
"enrichment_credit_cap": 0,
"ai_credit_cap": 5000000
}
}
Account
List Plans
GET
/
v1
/
plans
curl https://api.v2.dealmachine.com/v1/plans
const response = await fetch('https://api.v2.dealmachine.com/v1/plans');
const { plans } = await response.json();
for (const plan of plans) {
console.log(plan.name, plan.stripe_price_ids.monthly);
}
import requests
response = requests.get('https://api.v2.dealmachine.com/v1/plans')
plans = response.json()['plans']
for plan in plans:
print(plan['name'], plan['stripe_price_ids']['monthly'])
{
"plans": [
{
"id": "prod_UXvhA0ZjLHucgF",
"name": "Basic",
"description": "For solo investors and small teams hunting off-market deals",
"type": "solo",
"pricing": {
"currency": "usd",
"monthly_price_cents": 9900,
"annual_price_cents": 99000,
"is_per_user": true
},
"credits": {
"enrichment_per_month": 10000,
"enrichment_per_year": 120000,
"ai_per_month": 25000000
},
"features": ["Nationwide property & owner data", "Saved searches & filters"],
"stripe_price_ids": {
"monthly": "price_xxx_monthly",
"annual": "price_xxx_annual"
},
"seats": {
"min": 1,
"max": 6
}
}
],
"free_tier": {
"enrichment_credit_cap": 0,
"ai_credit_cap": 5000000
}
}
List public self-serve subscription plans. No authentication is required.
The plan catalog is generated from the same
@dealmachine/shared/constants/plans source used by the frontend. It only includes self-serve plans. Sales-managed Scale plans and private offer plans are not returned.
curl https://api.v2.dealmachine.com/v1/plans
const response = await fetch('https://api.v2.dealmachine.com/v1/plans');
const { plans } = await response.json();
for (const plan of plans) {
console.log(plan.name, plan.stripe_price_ids.monthly);
}
import requests
response = requests.get('https://api.v2.dealmachine.com/v1/plans')
plans = response.json()['plans']
for plan in plans:
print(plan['name'], plan['stripe_price_ids']['monthly'])
{
"plans": [
{
"id": "prod_UXvhA0ZjLHucgF",
"name": "Basic",
"description": "For solo investors and small teams hunting off-market deals",
"type": "solo",
"pricing": {
"currency": "usd",
"monthly_price_cents": 9900,
"annual_price_cents": 99000,
"is_per_user": true
},
"credits": {
"enrichment_per_month": 10000,
"enrichment_per_year": 120000,
"ai_per_month": 25000000
},
"features": ["Nationwide property & owner data", "Saved searches & filters"],
"stripe_price_ids": {
"monthly": "price_xxx_monthly",
"annual": "price_xxx_annual"
},
"seats": {
"min": 1,
"max": 6
}
}
],
"free_tier": {
"enrichment_credit_cap": 0,
"ai_credit_cap": 5000000
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
plans[].id | string | Stripe product ID for the current API environment |
plans[].name | string | Plan name, such as Basic or Pro |
plans[].type | string | Self-serve plan family. Currently solo. |
plans[].pricing.monthly_price_cents | number | Monthly per-seat price in cents |
plans[].pricing.annual_price_cents | number | Annual per-seat price in cents |
plans[].credits.enrichment_per_month | number | Monthly data credits per seat |
plans[].stripe_price_ids.monthly | string | Monthly Stripe price ID to pass to POST /v1/checkout |
plans[].stripe_price_ids.annual | string | Annual Stripe price ID to pass to POST /v1/checkout |
plans[].seats.max | number | null | Maximum self-serve quantity for the plan |
Self-Serve Limits
Self-serve API checkout is capped at 60,000 monthly data credits. The returned plans already reflect that limit through their per-seat credit amounts andseats.max values.⌘I