{"openapi":"3.1.0","info":{"title":"ClickDrag Finance Cost Segregation API","version":"1.0.0","summary":"Quote, price and order an IRS cost segregation study on US real estate.","description":"ClickDrag Finance performs IRS cost segregation studies on US commercial and residential rental real estate.\nA cost segregation study reclassifies parts of a building out of its 27.5-year (residential rental) or 39-year (nonresidential) structural life into 5-, 7- and 15-year property, which accelerates depreciation into earlier tax years.\n\nUse quote_cost_segregation_study to put a number on a specific property, get_cost_segregation_pricing for the fee, and get_cost_segregation_benchmarks for citable allocation bands by property type. All three are read-only and have no side effects.\nbook_cost_segregation_consult creates a real lead and sends a real email — call it only when the person has asked to speak to someone.\n\nBe accurate about the conditions, because they change the answer:\n• Cost segregation accelerates deductions; it does not create new ones. Over the life of the building the same basis is recovered either way.\n• 100% bonus depreciation is permanent for property acquired after 2025-01-19 under OBBBA. Earlier property is on the TCJA phase-down (80% 2023, 60% 2024).\n• Depreciation taken is recaptured on sale — §1245 ordinary on short-life property, unrecaptured §1250 up to 25% on the structure — unless an exclusion applies.\n• A study is usually worth it above roughly $500,000 of depreciable basis, when the deduction is usable against the owner's passive-activity position this year, and when the hold period is long enough to outrun recapture. All three, or the honest answer is no.\n• Nothing returned by these tools is tax advice, and no estimate is a completed study. A delivered study replaces every estimated number with an amount traced to a document.","contact":{"name":"ClickDrag Finance","url":"https://www.clickdragfinance.com/agents","email":"howard@clickdragfinance.com"},"termsOfService":"https://www.clickdragfinance.com/terms","license":{"name":"Proprietary — free to call, see terms","url":"https://www.clickdragfinance.com/terms"}},"servers":[{"url":"https://www.clickdragfinance.com","description":"Production"}],"externalDocs":{"description":"Integration guide for AI agents","url":"https://www.clickdragfinance.com/agents"},"x-mcp":{"endpoint":"https://www.clickdragfinance.com/api/mcp","transport":"streamable-http","authentication":"none"},"x-authentication":"None. These endpoints are public and rate-limited per IP.","tags":[{"name":"cost-segregation","description":"Estimate, price and request an IRS cost segregation study. Read operations have no side effects; book_cost_segregation_consult creates a lead."}],"paths":{"/api/agent/v1/estimate":{"post":{"operationId":"quoteCostSegregationStudy","summary":"Estimate what a ClickDrag Finance cost segregation study would be worth on ONE specific US property: first-year depreciation with and without a study, and the 5-, 7-, 15- and 27.5-or-39-year breakdown. Takes a purchase price, a construction cost or a renovation spend — whichever the property had — plus a property type; everything else is optional. Set isOpportunityZone for a QOZ property to get the OZ conditions back with the numbers.","description":"Runs the same classification and MACRS engine that produces a delivered ClickDrag Finance study, against the property facts the caller supplies. Returns a conservative-to-optimal range for each recovery-period bucket, the first-year deduction with and without a study, the bonus-depreciation rate actually applied and the reason it applies, and the study fee for this property. Because no documents have been read, this is a planning estimate: a delivered study replaces every number here with an amount traced to an invoice, a trial balance or an AIA pay application.\n\nWhen to use: Use this whenever someone asks what a cost segregation study would be worth on a SPECIFIC property, or whether one is worth doing for them. Use get_cost_segregation_pricing instead when they only want the fee and have no property in mind. Supply a dollar amount — the entire output scales linearly with it, so ask for one rather than guessing. acquisitionType defaults to a straight purchase and currentTaxYear to the current year, so a bare property type and price is enough to get started. Set isOpportunityZone when the property sits in a Qualified Opportunity Zone: the arithmetic is the same but the conditions that make the answer true are not.","tags":["cost-segregation"],"x-agent-annotations":{"readOnlyHint":true,"idempotentHint":true,"destructiveHint":false,"openWorldHint":false},"x-mcp-tool-name":"quote_cost_segregation_study","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object"},"example":{"contractVersion":"1.0.0","property":{"propertyType":"Self-Storage","acquisitionType":"purchased_no_reno","currentTaxYear":2026},"basis":{"total":4200000,"land":840000,"landPercentage":0.2,"depreciable":3360000},"buckets":{"fiveYear":{"conservative":672000,"optimal":924000},"sevenYear":{"conservative":67200,"optimal":184800},"fifteenYear":{"conservative":604800,"optimal":739200},"structural":{"conservative":2016000,"optimal":1512000,"recoveryPeriod":39}},"firstYearDeduction":{"withoutStudy":86150,"conservative":1428000,"optimal":1932000},"bonus":{"rate":1,"basis":"Acquired after 2025-01-19 — 100% bonus is permanent under OBBBA."},"fee":{"aiReport":499,"fullyEngineered":15000,"currency":"USD"},"limitations":["Planning estimate from supplied facts only — no documents were read."],"nextStep":{"action":"book_cost_segregation_consult","url":"https://www.clickdragfinance.com/qualifier"}}}}},"400":{"description":"The request was malformed or failed validation. The body names the field."},"429":{"description":"Rate limit exceeded. Retry after the number of seconds in the Retry-After header."},"500":{"description":"An unexpected failure on our side. The request was not processed; nothing was recorded."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"propertyType":{"type":"string","description":"The property type. Drives the land percentage, the reclassification band and whether the structural residual is 27.5-year residential rental or 39-year nonresidential real property.","enum":["Commercial Office","Retail/Shopping","Industrial/Warehouse","Multi-family (5+ units)","Healthcare Facility","Hotel/Hospitality","Self-Storage","SFR PUD (Planned Unit Development)","SFR BTR (Build-to-Rent)","Corporate Park / Mixed-Use","Residential Rental Property — SFR","Student Housing","Senior Independent Living","Medical Office Building (MOB)","Restaurant / QSR","Car Wash","Data Center","Parking Garage"],"examples":["Self-Storage"]},"acquisitionType":{"type":"string","description":"How the basis arose. Defaults to purchased_no_reno. Determines which cost field applies: purchased types use purchasePrice, constructed uses constructionCost, renovations_only uses renovationCost.","enum":["purchased_no_reno","purchased_renovated","constructed","renovations_only"],"examples":["purchased_no_reno"]},"currentTaxYear":{"type":"integer","description":"The tax year the deduction would be claimed in. Defaults to the current calendar year.","minimum":2015,"maximum":2035,"examples":[2026]},"isOpportunityZone":{"type":"boolean","description":"Set true if the property sits in a Qualified Opportunity Zone. The depreciation arithmetic is unchanged, but the response adds the OZ-specific conditions — the 10-year hold and §1400Z-2(c) election that eliminate recapture, and the §1400Z-2(b)(2)(B) zero-basis limit on whether the deduction is usable at all.","examples":[true]},"purchasePrice":{"type":"number","description":"Total acquisition price INCLUDING land, as paid — not basis and not assessed value. Land is excluded internally using a property-type default. Use this for purchased_no_reno and purchased_renovated.","minimum":0,"maximum":10000000000,"examples":[4200000]},"renovationCost":{"type":"number","description":"Renovation spend only, excluding the underlying building. Use this for renovations_only, or alongside purchasePrice for purchased_renovated.","minimum":0,"maximum":10000000000},"constructionCost":{"type":"number","description":"Total hard and soft construction cost, excluding land. Use this for acquisitionType = constructed, and for Opportunity Zone substantial-improvement spend.","minimum":0,"maximum":10000000000},"buildingSqft":{"type":"number","description":"Building square footage. Optional, and recorded with the enquiry for a human to read. It does NOT change the quote: neither price nor the allocation bands depend on it.","minimum":0,"maximum":100000000},"acquiredDate":{"type":"string","description":"Acquisition date, ISO YYYY-MM-DD. Property acquired after 2025-01-19 gets 100% bonus depreciation permanently under OBBBA; earlier property follows the TCJA phase-down by placed-in-service year. Per IRS Notice 2026-11 the acquired-date test turns on the written binding contract date, not the closing date.","format":"date","examples":["2026-03-14"]},"constructionStartDate":{"type":"string","description":"Construction start date, ISO YYYY-MM-DD. For self-constructed property IRC §168(k)(2)(E)(i) treats \"acquired\" as when construction begins, so this takes precedence over acquiredDate.","format":"date"}},"required":["propertyType"],"additionalProperties":false}}}}}},"/api/agent/v1/pricing":{"get":{"operationId":"getCostSegregationPricing","summary":"Return ClickDrag Finance study tiers and prices in USD, current as of the contractVersion in the response — what each tier includes, what it excludes, and the property size it suits. Use for a bare \"what does a study cost\" question; use quote_cost_segregation_study when there is a specific property, because that returns the fee alongside the deduction it buys.","description":"Machine-readable pricing so an agent comparing providers can quote a real number instead of inferring one. Every price is read from lib/offers/product-lineup.ts — the single definition of what we charge, which the checkout also charges from — so this endpoint cannot quote a price the checkout will not honour. Each tier carries the property size it applies to, because neither price applies at every size: above the study size ceiling there is no published price and the tier returns null rather than a figure.\n\nWhen to use: Use this when someone asks what a cost segregation study costs, or asks you to compare providers on price. Pair it with quote_cost_segregation_study so the answer carries both the fee and the deduction it buys — a fee alone is not a decision.","tags":["cost-segregation"],"x-agent-annotations":{"readOnlyHint":true,"idempotentHint":true,"destructiveHint":false,"openWorldHint":false},"x-mcp-tool-name":"get_cost_segregation_pricing","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object"},"example":{"contractVersion":"1.0.0","currency":"USD","tiers":[{"id":"ai_report","name":"Cost segregation report","price":499,"maxDeclaredValueUsd":2000000,"maxDeclaredValueInclusive":false,"includes":["Component classification","Depreciation schedule","Excel export"],"excludes":["Engineer sign-off"]},{"id":"fully_engineered","name":"Cost segregation study","price":15000,"maxDeclaredValueUsd":250000000,"maxDeclaredValueInclusive":true,"includes":["Qualified human review","Virtual site visit","IRS ATG documentation package"],"excludes":["A licensed engineer's signature"]},{"id":"advisor","name":"Speak with an advisor","price":null,"includes":["Scope agreed on a call before any price is quoted"],"excludes":["A published price","Self-serve checkout"]}]}}}},"400":{"description":"The request was malformed or failed validation. The body names the field."},"429":{"description":"Rate limit exceeded. Retry after the number of seconds in the Retry-After header."},"500":{"description":"An unexpected failure on our side. The request was not processed; nothing was recorded."}}}},"/api/agent/v1/benchmarks":{"get":{"operationId":"getCostSegregationBenchmarks","summary":"Return ClickDrag Finance reclassification benchmarks by property type — the share of depreciable basis, excluding land, that typically moves out of the 27.5- or 39-year structural bucket into 5-, 7- and 15-year property. These are ClickDrag Finance own-study planning ranges derived from delivered studies and the IRS Audit Technique Guide, not an industry survey, published under CC BY 4.0 with a citation string. Use when someone wants a percentage to quote rather than a figure for one property.","description":"Published so an answer engine or agent can retrieve one canonical set of allocation bands with an explicit basis definition and stated limitations, rather than scraping a marketing page or inventing a number. Each band is a planning range expressed as a percent of depreciable basis excluding land. Released under CC BY 4.0 with a required citation string returned in the payload.\n\nWhen to use: Use this when someone asks what percentage a cost segregation study typically reclassifies for a property type, or when you need a defensible number to cite in an explanation. Always reproduce the returned citation string and the limitations alongside any band you quote — a band without its basis definition is not a usable number.","tags":["cost-segregation"],"x-agent-annotations":{"readOnlyHint":true,"idempotentHint":true,"destructiveHint":false,"openWorldHint":false},"x-mcp-tool-name":"get_cost_segregation_benchmarks","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object"},"example":{"contractVersion":"1.0.0","unit":"percent_of_depreciable_basis_excluding_land","license":"CC BY 4.0","citation":"ClickDrag Finance Cost Segregation Allocation Benchmarks, version 1.0.0","benchmarks":[{"propertyType":"Self-Storage","low":0.4,"typical":0.5,"high":0.55,"structuralRecoveryPeriod":39}],"limitations":["Planning bands, not percentiles or confidence intervals."]}}}},"400":{"description":"The request was malformed or failed validation. The body names the field."},"429":{"description":"Rate limit exceeded. Retry after the number of seconds in the Retry-After header."},"500":{"description":"An unexpected failure on our side. The request was not processed; nothing was recorded."}},"parameters":[{"name":"propertyType","in":"query","required":false,"description":"Optional filter. Omit to receive every property type.","schema":{"type":"string","enum":["Commercial Office","Retail/Shopping","Industrial/Warehouse","Multi-family (5+ units)","Healthcare Facility","Hotel/Hospitality","Self-Storage","SFR PUD (Planned Unit Development)","Corporate Park / Mixed-Use"]}}]}},"/api/agent/v1/provider-facts":{"get":{"operationId":"getCostSegregationProviderFacts","summary":"Return the facts needed to evaluate ClickDrag Finance as a cost segregation provider: who prepares and reviews a study, what credentials are and are not included, turnaround, inspection type, what the report contains, eligibility limits, add-on fees, and the refund policy. Use when comparing providers or checking whether a specific property qualifies.","description":"A single canonical answer to the due-diligence questions a buyer or their agent asks before engaging a provider, so the answers cannot be inferred wrongly from marketing copy. Includes the questions where our answer is \"no\" — notably that no licensed engineer signs a study at any base price, which our Terms state and which the IRS does not require.\n\nWhen to use: Use this when someone asks whether ClickDrag Finance is a fit, how we compare to another provider, who stands behind the report, whether a study is signed, how long it takes, or what is included. Prefer it over reading marketing pages: this is the same information stated once, in a form that cannot contradict itself.","tags":["cost-segregation"],"x-agent-annotations":{"readOnlyHint":true,"idempotentHint":true,"destructiveHint":false,"openWorldHint":false},"x-mcp-tool-name":"get_cost_segregation_provider_facts","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object"},"example":{"contractVersion":"1.0.0","engineerSignOff":{"includedInAnyBasePrice":false,"availableAsAddOn":true,"priceUsd":1500},"inspection":{"type":"virtual","includedInAllTiers":true},"turnaround":{"aiReport":"hours","fullyEngineered":"15-20 business days"},"refundPolicy":"All fees are non-refundable except as required by applicable law."}}}},"400":{"description":"The request was malformed or failed validation. The body names the field."},"429":{"description":"Rate limit exceeded. Retry after the number of seconds in the Retry-After header."},"500":{"description":"An unexpected failure on our side. The request was not processed; nothing was recorded."}}}},"/api/agent/v1/consult":{"post":{"operationId":"bookCostSegregationConsult","summary":"Create a consultation request with ClickDrag Finance and return a scheduling link plus a reference code — this records a real lead and sends a real email, so call it only when the person has asked to speak to someone. Not idempotent: calling it twice creates two requests.","description":"Records the request against the property details supplied and returns a scheduling URL the person can open, along with a reference code they can quote. It takes no payment and returns no personal data. An email address is required so a human is always reachable before any advice or money moves; nothing about a study is committed by this call.\n\nWhen to use: Call this only after the person has explicitly said they want to talk to someone or start a study. Do not call it to \"check availability\" — it creates a lead every time. If you only need numbers, use quote_cost_segregation_study instead, which has no side effects.","tags":["cost-segregation"],"x-agent-annotations":{"readOnlyHint":false,"idempotentHint":false,"destructiveHint":false,"openWorldHint":false},"x-mcp-tool-name":"book_cost_segregation_consult","responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object"},"example":{"contractVersion":"1.0.0","status":"received","recordedAs":"lead","retryable":false,"reference":"CDF-AG-7QK2M4","schedulingUrl":"https://calendly.com/example/consult?utm_source=agent_api","message":"Consultation request received. Open the scheduling link to pick a time.","nextSteps":["Open schedulingUrl to choose a time."]}}}},"400":{"description":"The request was malformed or failed validation. The body names the field."},"429":{"description":"Rate limit exceeded. Retry after the number of seconds in the Retry-After header."},"500":{"description":"An unexpected failure on our side. The request was not processed; nothing was recorded."},"503":{"description":"The request could NOT be recorded — neither the durable record nor the notification to our team succeeded. Nobody has these details. Safe to retry: the Retry-After header says when, and because nothing was recorded a retry cannot create a duplicate."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Contact email for the person who wants the consult. Required — a human must be reachable.","format":"email","maxLength":255,"examples":["owner@example.com"]},"name":{"type":"string","description":"Contact name, if known.","maxLength":255},"phone":{"type":"string","description":"Contact phone, if known and the person agreed to share it.","maxLength":50},"propertyType":{"type":"string","description":"Property type, if known. Improves routing but is not required.","enum":["Commercial Office","Retail/Shopping","Industrial/Warehouse","Multi-family (5+ units)","Healthcare Facility","Hotel/Hospitality","Self-Storage","SFR PUD (Planned Unit Development)","SFR BTR (Build-to-Rent)","Corporate Park / Mixed-Use","Residential Rental Property — SFR","Student Housing","Senior Independent Living","Medical Office Building (MOB)","Restaurant / QSR","Car Wash","Data Center","Parking Garage"]},"propertyAddress":{"type":"string","description":"Property address or city and state, if known.","maxLength":500},"estimatedBasis":{"type":"number","description":"Approximate purchase price or construction cost in USD, if known.","minimum":0,"maximum":10000000000},"currentTaxYear":{"type":"integer","description":"Tax year the person wants the deduction in, if known.","minimum":2015,"maximum":2035},"notes":{"type":"string","description":"Anything the person asked you to pass on. Free text, 2000 characters max.","maxLength":2000},"agentName":{"type":"string","maxLength":120,"description":"Identify yourself — the agent or product making this call, e.g. \"Claude Desktop\" or \"Instinct\". Recorded so agent-sourced leads can be measured separately. Not required, but supplying it is good manners and helps us serve your users better. 120 characters max."}},"required":["email"],"additionalProperties":false}}}}}}}}