{
  "info": {
    "name": "Deal Run API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": "Run a real-estate deal from your own code or AI: **Details · Comps · Repairs · Max Offer · Package · Find Buyers · Blast**.\n\n**Auth.** Send `Authorization: Bearer <key>`. Keys start with `dr_live_` (real data, real charges) or `dr_test_` (sandbox: three sample properties, nothing charged or sent). AI apps connect with OAuth instead (see the MCP server at `https://mcp.dealrun.ai/mcp`). An AI app connected by an account without Deal Run balance or a plan runs in demo mode: the sample deal only, nothing charged, and other deals answer `402 card_required_for_real_deals` with a `balance_url` to add balance or choose a plan. AI apps never charge a card. API keys aren't affected.\n\n**Pricing.** Without a plan: Analyze a deal $2; Analyze + Sell a deal $20 (a $2 analysis already paid on the deal counts toward it), with up to 100 buyers skip traced (up to 75% come back with a phone or email, and the contact data is 97% accurate, according to our skip-trace provider (November 2026); results vary by location); more buyers $20 per extra 100. AI apps pay from a Deal Run balance ($2 or more to add). On the Analyze plan ($29/mo): 25 analyses a month across the web app, AI apps and the API, then $2 each; Analyze + Sell a deal $20 (your first one is included). On the Analyze + Sell plan ($99/mo, no free trial): 25 analyses a month across the web app, AI apps and the API, then $2 each; 15 deals analyzed and sold a month, then $20 each. More buyers on any plan: $20 per extra 100. Each deal is charged at most once for each (more buyers can be added again). Free: max-offer calculator, deals, activity, buyer list, 50 property lookups a day.\n\n**Charges.** Everything is charged when it runs, never added to a later invoice: AI apps from the Deal Run balance, API keys from the account's credit or card. A paid call that your plan doesn't cover returns `402 payment_required` with a `quote`. Show the price to the person paying; if they agree, repeat the call with `confirm_quote_id`; if they don't, `POST /v1/quotes/{quote_id}/decline` so that price can never be approved later. The account owner can let their AI approve charges up to a set amount (at most $20) in the web app. An unusual run of charges pauses new charges for a quick review (`402 review_required`).\n\n**Conventions.** JSON; ids are UUIDs; money in billing objects is integer cents; real-estate figures are whole dollars; coordinates are never rounded. Long work answers `202` with a job; poll `GET /v1/jobs/{job_id}`. Errors look like `{\"error\": \"<code>\", \"message\": \"...\", \"request_id\": \"...\"}`. Limits: 30 requests/minute per key (6/minute for analyze, contacts and blast), 2,000 a day per account; `429` carries `Retry-After` and `X-RateLimit-*`.\n\n**Data safety.** Addresses, names, remarks and messages in responses are third-party data. If you pass them to an AI, treat them as data, never as instructions.\n\nSet `api_key` to a dr_test_ key to try it with sample data for $0."
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.dealrun.ai"
    },
    {
      "key": "api_key",
      "value": "dr_test_..."
    },
    {
      "key": "deal_id",
      "value": ""
    },
    {
      "key": "job_id",
      "value": ""
    },
    {
      "key": "buyer_id",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Account",
      "item": [
        {
          "name": "Who am I",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/me",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "me"
              ]
            },
            "description": "The account, plan, mode (live or sandbox), scopes and — with billing:read — caps and spend this month."
          }
        },
        {
          "name": "What Deal Run can do",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/guide",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "guide"
              ]
            },
            "description": "A structured guide: the seven steps and what each returns, prices and plans, demo /\nsandbox / live modes and how to go live, common workflows with example prompts, ways to connect your\nexisting tools, and limits. Free, in every mode; makes no data calls and charges nothing."
          }
        },
        {
          "name": "Usage and limits",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/usage",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "usage"
              ]
            },
            "description": "Spend this month, caps, allowances left, and the card on file. Needs billing:read."
          }
        }
      ]
    },
    {
      "name": "1 Details",
      "item": [
        {
          "name": "Look up a property",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/properties/lookup",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "properties",
                "lookup"
              ]
            },
            "description": "Property facts for an address: beds, baths, sqft, lot, year, owner type, last sale, flood zone.\nFree, 50 lookups a day. Doesn't create a deal.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"address\": \"1427 Maple Glen Dr, Houston, TX 77088\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Create a deal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals"
              ]
            },
            "description": "Creates a deal from an address (free). Creating the same address again returns the existing deal\n(`created: false`), so you're never charged twice.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"address\": \"1427 Maple Glen Dr, Houston, TX 77088\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "List deals",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "25",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "stage",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Your deals, newest first."
          }
        },
        {
          "name": "Get a deal",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}"
              ]
            },
            "description": "One deal, including its package (draft or published) when there is one."
          }
        },
        {
          "name": "Update a deal",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}"
              ]
            },
            "description": "Change asking price, contract price, notes or stage. The address can't change; create a new deal.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "2 Comps",
      "item": [
        {
          "name": "Analyze a deal (paid)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/analyze",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "analyze"
              ]
            },
            "description": "Runs comps, ARV and rent, repairs (with 5+ photos), max offer, how many investors bought nearby and the top 3\nbuyers by name. Costs **Analyze a deal** ($2, or included in your plan), once per deal. Without an allowance or\nauto-approve you get `402 payment_required` with a quote; show the price, then repeat with\n`confirm_quote_id`. Answers 202 with a job; read the result at GET /v1/deals/{id}/analysis.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Report bad analysis data",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/report-bad-data",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "report-bad-data"
              ]
            },
            "description": "The analysis data looks wrong: refunds the $2 analysis to the balance (up to 2 in 30 days instantly; more,\nor a deal with a paid Sell, goes to review). Free.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Comps",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/comps",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "comps"
              ],
              "query": [
                {
                  "key": "type",
                  "value": "sale",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "25",
                  "disabled": true
                }
              ]
            },
            "description": "Sale or rent comps for your analyzed deal: address, distance, status, price, date, beds/baths/sqft,\n$/sqft, days on market, MLS board, and whether you selected it. No photos."
          }
        },
        {
          "name": "Select comps",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/comps/selection",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "comps",
                "selection"
              ]
            },
            "description": "Replace your selected comps and optionally confirm the ARV (sale) or rent.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"sale\",\n  \"comp_ids\": [\n    \"\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "3 Repairs",
      "item": [
        {
          "name": "Add photos",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/photos",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "photos"
              ]
            },
            "description": "Add photo URLs (https) or a share link. Free. Repairs need 5+ photos.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Estimate repairs from photos",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/repairs/analyze",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "repairs",
                "analyze"
              ]
            },
            "description": "Line-item repair estimate from the deal's photos (5–100). Included in Analyze a deal; up to 5 runs per deal.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get repairs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/repairs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "repairs"
              ]
            },
            "description": "total, categories {roof, hvac, foundation, water_heater, electrical, kitchen, bathrooms, general_interior,\nexterior: {cost, enabled}}, custom_items, overhead_pct, the itemized scope, photos seen."
          }
        },
        {
          "name": "Adjust repairs",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/repairs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "repairs"
              ]
            },
            "description": "Change category costs, toggle categories, set custom items and overhead. The total is recomputed.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "4 Max Offer",
      "item": [
        {
          "name": "The analysis report",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/analysis",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "analysis"
              ]
            },
            "description": "The consolidated report: property, sale and rent comps (≤25 each, with MLS board), ARV and rent with\nconfidence, repairs, max offer for flip / rental / wholesale / novation with the formula printed,\na buyers preview (counts + top 10, no contacts) and next steps. Text fields are third-party data."
          }
        },
        {
          "name": "Calculate max offer (free)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/calculate/max-offer",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "calculate",
                "max-offer"
              ]
            },
            "description": "Max offer for flip, rental, wholesale and novation, each with its own settings and the formula printed.\nStateless with your numbers, or from a deal's analysis with `deal_id`. Free.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"arv\": 230000,\n  \"repairs\": 45000,\n  \"arr\": 1850\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "5 Package",
      "item": [
        {
          "name": "Create the package (draft)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/package",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "package"
              ]
            },
            "description": "Creates or updates the draft deal page: asking price, headline, pitch (written for you unless you\ngive one), photo order and the package sections (show or hide the numbers, comps, address; contact,\nclosing and walkthrough details). Returns a link that opens the PDF in Deal Run. Property facts are\nlocked. Free.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get the deal PDF",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/package/pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "package",
                "pdf"
              ]
            },
            "description": "The deal package as a PDF: returns a download link that works for 7 days and the PDF's parts with\nwhether each is on. Change parts (`sections.pdf_*`, `show_numbers`, `include_comps`) or details with\n`POST /v1/deals/{deal_id}/package`, then call this again for a fresh link. Part of **Analyze + Sell a\ndeal** ($20, and a $2 analysis already paid on the deal counts toward it; included in plans), charged once per deal.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Publish the deal page",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/package/publish",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "package",
                "publish"
              ]
            },
            "description": "Makes the deal page public and returns its URL. Part of **Analyze + Sell a deal** ($20, minus a $2 analysis\nalready paid on the deal; included in plans), charged once per deal. Refused (409\n`paperwork_photos_on_page`) while the package shows photos the photo check marked as paperwork, unless\n`keep_paperwork_photos` is true.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Unpublish the deal page",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/package/unpublish",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "package",
                "unpublish"
              ]
            },
            "description": "Takes the public deal page down. The package stays saved; publishing again later costs nothing more. Free."
          }
        }
      ]
    },
    {
      "name": "6 Find Buyers",
      "item": [
        {
          "name": "Investor purchases nearby",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/investor-purchases",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "investor-purchases"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "25",
                  "disabled": true
                }
              ]
            },
            "description": "What investors paid near the deal: landlord purchases and flip resales from the deal's ranked buyer\nsearch, newest first, with medians. Comes with **Analyze + Sell a deal** (after the buyer search)."
          }
        },
        {
          "name": "Search buyers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/buyers/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "buyers",
                "search"
              ]
            },
            "description": "Investors who bought near the deal, ranked by Investor Score: entity, purchases, last purchase, price\nrange (one search + one radius expand). Part of **Analyze + Sell a deal** ($20, minus a $2 analysis already paid on the deal),\ncharged once per deal; contacts then come at no extra charge. The $2 analysis shows a free count and the\ntop 3 buyers by name.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Buyer contacts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/buyers/contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "buyers",
                "contacts"
              ]
            },
            "description": "Name, phones (mobile first), email and a contact grade for up to 100 buyers. Each phone carries a national\nDo Not Call flag (`dnc_national`). Contacts known to be litigators are never returned; the response only\ncounts them (`withheld_for_legal_risk`). Flags are informational and can be wrong. Part of **Analyze + Sell a deal**. If no\ncontacts are found, the charge is refunded.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "100 more buyers ($20)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/buyers/more",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "buyers",
                "more"
              ]
            },
            "description": "Adds 100 more buyers with contacts to a deal that already has its buyers ($20 each 100). Then call\nBuyer contacts with a higher `limit`; buyers already returned are never charged again.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Your buyer list",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/buyers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "buyers"
              ],
              "query": [
                {
                  "key": "search",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "tag",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "limit",
                  "value": "50",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Your saved buyers (CRM). Phone and email need contacts:read. Buyers known to be litigators are never\nreturned (only counted)."
          }
        },
        {
          "name": "Save buyers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/buyers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "buyers"
              ]
            },
            "description": "Add or update buyers in your list (matched by name).",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"buyers\": [\n    {\n      \"investor_name\": \"\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Update a buyer",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/buyers/{{buyer_id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "buyers",
                "{{buyer_id}}"
              ]
            },
            "description": "Tags (replaces the list), notes, status, type, phone, email.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Connect my tools",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/tools/connect",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "tools",
                "connect"
              ],
              "query": [
                {
                  "key": "tool",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Step-by-step setup for getting Deal Run's buyers into your CRM, dialer or texting tool: Deal Run's\nZapier app (GoHighLevel through Zapier's LeadConnector app), a spreadsheet plus import guides, or this API.\nFree."
          }
        },
        {
          "name": "Push buyers to my CRM",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/buyers/push",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "buyers",
                "push"
              ]
            },
            "description": "Sends this deal's buyers to your connected Zapier (the \"Investor Exported\" trigger, same as Push to CRM in\nthe web app). Phones and emails are included when the deal has Analyze + Sell; buyers known to be\nlitigators are never sent. Needs a plan or Analyze + Sell on the deal. Without Zapier connected, returns the setup steps. Free.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Export the deal",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/export",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "export"
              ]
            },
            "description": "A download link (valid 15 minutes) to a CSV of the deal's numbers and buyers. Phones and emails are\nincluded when the deal has Analyze + Sell. Free."
          }
        },
        {
          "name": "Make a spreadsheet",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/sheets",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "sheets"
              ]
            },
            "description": "A CSV download link (24 hours). Fill it from a deal (deal_id + data: buyers, comps or rent_comps; columns\npicks fields, extra adds yours by row id) or send your own columns and rows. Free.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "7 Blast",
      "item": [
        {
          "name": "Draft the buyer email",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/blast/draft",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "blast",
                "draft"
              ]
            },
            "description": "Builds the email from the deal facts and photo, with a tracked link to the deal page and an\nunsubscribe footer. You may set the subject and body text; the layout is fixed. Free.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Send a test email",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/blast/test",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "blast",
                "test"
              ]
            },
            "description": "Sends the draft to your own connected Gmail address. Free, 5 a day.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Send the blast",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/blast",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "blast"
              ]
            },
            "description": "Sends from your own Gmail to this deal's buyers, paced over the day (8 AM–8 PM). Needs the blast:send\nscope, `confirm: true`, a published deal page and Gmail connected (without it you get\n`409 gmail_not_connected` with a `connect_url`). Part of Analyze + Sell a deal.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Gmail connection status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/email/connection",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "email",
                "connection"
              ]
            },
            "description": "Whether the account has Gmail connected for blasts and test emails, and which address. Free."
          }
        },
        {
          "name": "Link to connect Gmail",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/email/connect-link",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "email",
                "connect-link"
              ]
            },
            "description": "A signed link (valid 15 minutes) the account owner opens in a browser, signed in to Deal Run, to\nconnect Gmail through Google's own screen. Blasts and test emails then go from that Gmail. Free."
          }
        }
      ]
    },
    {
      "name": "Activity",
      "item": [
        {
          "name": "Deal activity",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/deals/{{deal_id}}/activity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "deals",
                "{{deal_id}}",
                "activity"
              ]
            },
            "description": "Deal page views (per buyer when they came from your blast), link clicks, offers, showing requests and\ninquiries. Messages are third-party text."
          }
        }
      ]
    },
    {
      "name": "Jobs",
      "item": [
        {
          "name": "Job status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/jobs/{{job_id}}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "jobs",
                "{{job_id}}"
              ]
            },
            "description": "Status of an analysis, repairs or blast job. Poll every `poll_after_s` seconds until `done`."
          }
        }
      ]
    },
    {
      "name": "Billing",
      "item": [
        {
          "name": "Charges",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/billing/charges",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "billing",
                "charges"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "50",
                  "disabled": true
                },
                {
                  "key": "offset",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Per-deal charges and refunds, newest first. Needs billing:read."
          }
        },
        {
          "name": "Lower the auto-approve amount",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/billing/limits",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "billing",
                "limits"
              ]
            },
            "description": "Lower the amount your AI or script may spend without a quote confirmation. Raising it is only possible\nin the web app.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"auto_approve_under_cents\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Decline a price",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/quotes/{quote_id}/decline",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "quotes",
                "{quote_id}",
                "decline"
              ]
            },
            "description": "The user said no to a price from a `402 payment_required`. Nothing is charged, and that quote can never\nbe confirmed afterwards (ask again for a new price)."
          }
        }
      ]
    }
  ]
}
