pragmatic.

Canadian mortgage tools · CAD

Public mortgage tools

Current public data and calculations from Pragmatic Mortgage. Anonymous access; no account required.

name
Pragmatic Mortgage public agent tools
version
2.7.1
privacy
Public and non-confidential only. No PII, documents, account data, or authenticated client-file data.
web Mcp Draft
https://webmachinelearning.github.io/webmcp/
mcp Endpoint
https://pragmatic.mortgage/api/public/mcp
mcp Server Card
https://pragmatic.mortgage/api/public/mcp/server-card
ai Catalog
https://pragmatic.mortgage/.well-known/ai-catalog.json
execute Endpoint
https://pragmatic.mortgage/api/public/agent-tools
connection Guide
https://pragmatic.mortgage/ai-agents
browsing
calculator Schemas
  1. slug
    payment
    title
    Payment Estimator
  2. slug
    amortization
    title
    Amortization
  3. slug
    amortization-compare
    title
    Amortization Compare
  4. slug
    prepayment-impact
    title
    Prepayment Impact
  5. slug
    affordability
    title
    Affordability (Max Purchase)
  6. slug
    qualification
    title
    Mortgage Qualification
  7. slug
    debt-service
    title
    Debt Service (GDS/TDS)
  8. slug
    insurer-premium
    title
    Insurer Premium
  9. slug
    closing-costs
    title
    Closing Costs
  10. slug
    ptt-canada
    title
    Property Transfer Duties (Canada)
  11. slug
    ptt-bc
    title
    BC Property Transfer Tax
  12. slug
    refinance-analyzer
    title
    Refinance Analyzer
  13. slug
    refi-breakeven
    title
    Refi Breakeven
  14. slug
    stress-test
    title
    Stress Test Qualifier
  15. slug
    minimum-down-payment
    title
    Minimum Down Payment
  16. slug
    cash-to-close
    title
    Cash Needed to Close
  17. slug
    renewal-compare
    title
    Renewal Compare
  18. slug
    penalty-estimator
    title
    IRD Penalty Calculator
  19. slug
    rental-qualifier
    title
    Rental Income Qualifier
  20. slug
    dscr
    title
    DSCR / NOI
  21. slug
    heloc
    title
    HELOC Payment & Interest
  22. slug
    smith
    title
    Smith Manoeuvre
  23. slug
    rate-compare
    title
    Fixed vs Variable Rate Shock
  24. slug
    rate-comparison
    title
    Rate Comparison (True Cost)
  25. slug
    trigger-rate
    title
    Trigger Rate & Point
execution
Text-only readers can use the exact URLs printed under Links for assistants. Follow the term, insurance and lender links in readable rate results to refine the same scenario without inventing URLs. Use /rates?format=html for readable rate data and /ai-agents?format=html for readable tool discovery or execution. GET or POST to executeEndpoint for JSON. GET accepts tool and JSON-encoded input query parameters. Browsing readers that reject JSON can request format=html on rates, calculator schema, calculations and every other public GET tool; identical validation and calculations apply. Omit format for JSON, or use format=json. Numeric anonymous scenarios only; no personal information in URLs.
quick Start
tool
pragmatic.compare_rates.v1
input
transaction
PURCHASE
price Or Value
$750,000.00
down Payment Amount
$150,000.00
amortization Years
25
term Years
5
occupancy
OWNER
province
BC
limit
5
tools
  1. name
    pragmatic.site_facts.v1
    title
    Get Pragmatic Mortgage facts
    description
    Get canonical business facts, service area, pricing policy, public privacy boundary, and machine-readable discovery URLs for Pragmatic Mortgage Lending.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {},
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  2. name
    pragmatic.list_calculators.v1
    title
    List mortgage calculators
    description
    Find public Canadian mortgage calculators by goal, category, title, or keyword. Returns canonical calculator slugs and URLs without collecting personal information.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "maxLength": 120
        },
        "category": {
          "type": "string",
          "enum": [
            "purchase",
            "refinance",
            "renewal",
            "qualification",
            "payments",
            "rates",
            "govtax",
            "investment",
            "heloc_smith"
          ]
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 30,
          "default": 12
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  3. name
    pragmatic.get_calculator_schema.v1
    title
    Get calculator inputs
    description
    Get the exact JSON input schema for one public calculator before calling pragmatic.calculate.v1. Use this whenever required calculator inputs are not already known.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "slug": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        }
      },
      "required": [
        "slug"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  4. name
    pragmatic.calculate.v1
    title
    Run a mortgage calculator
    description
    Run any public Pragmatic Canadian mortgage calculator with deterministic mortgage-core math. First fetch the calculator schema. Never include names, contact details, addresses, account data, or other identity fields.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "slug": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "input": {
          "type": "object",
          "additionalProperties": {}
        }
      },
      "required": [
        "slug",
        "input"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  5. name
    pragmatic.rate_overview.v1
    title
    Read all advertised mortgage rates
    description
    Read ALL current advertised website offers without inventing a borrower scenario. No default term or lender cap. Optional termYears, rateType, transaction (PURCHASE, RENEWAL/TRANSFER/SWITCH, REFINANCE, HELOC), pricingBucket (INSURED, INSURABLE, UNINSURED, HELOC), lender, province, occupancy, amortizationYears, programMode and creditScore filters. Returns APR, lender, eligibility conditions, verification and expiry. Follow pagination.nextInput until hasMore is false to retrieve every offer. For personal scenario matching use search_rates or compare_rates. Ordinary readers use /rates; GET /api/public/rates exposes the same catalogue.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "termYears": {
          "type": "number",
          "enum": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            10
          ]
        },
        "rateType": {
          "type": "string",
          "enum": [
            "FIXED",
            "VARIABLE",
            "HELOC"
          ]
        },
        "transaction": {
          "type": "string",
          "enum": [
            "PURCHASE",
            "RENEWAL",
            "REFINANCE",
            "HELOC",
            "TRANSFER",
            "SWITCH"
          ]
        },
        "pricingBucket": {
          "type": "string",
          "enum": [
            "INSURED",
            "INSURABLE",
            "UNINSURED",
            "HELOC"
          ]
        },
        "occupancy": {
          "type": "string",
          "enum": [
            "OWNER",
            "OWNER_PLUS_RENTAL",
            "RENTAL",
            "SECOND_HOME"
          ]
        },
        "amortizationYears": {
          "type": "number",
          "enum": [
            25,
            30
          ]
        },
        "province": {
          "type": "string",
          "enum": [
            "BC",
            "AB",
            "SK",
            "MB",
            "ON",
            "QC",
            "NB",
            "NS",
            "PE",
            "NL",
            "YT",
            "NT",
            "NU"
          ]
        },
        "programMode": {
          "type": "string",
          "enum": [
            "standard",
            "bfs_alt",
            "promo",
            "any"
          ]
        },
        "creditScore": {
          "type": "integer",
          "minimum": 300,
          "maximum": 900
        },
        "lender": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "page": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10000,
          "default": 1
        },
        "pageSize": {
          "type": "integer",
          "minimum": 1,
          "maximum": 120,
          "default": 100
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  6. name
    pragmatic.lender_rates.v1
    title
    Read verified rates by lender
    description
    Find current conditional reference rates for a named lender such as Pine Financial, without inventing a borrower scenario. Includes source links, verification, expiry and explicit example assumptions. Not a personalized quote or a whole-market best rate. Follow with compare_rates once the borrower supplies their scenario.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "lender": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        }
      },
      "required": [
        "lender"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  7. name
    pragmatic.search_rates.v1
    title
    Shop live mortgage rates
    description
    Search Pragmatic Mortgage's live public lender-rate catalog for a non-identifying BC scenario. Supports purchase, renewal/transfer/switch, refinance and HELOC; insured/insurable/uninsured pricingBucket, multiple terms, lender, specialtyFilters, programMode, credit score, first-time buyer and new build. Filters never override eligibility. Use page and limit (up to 120) to retrieve every match; follow pagination.nextInput. Results are examples, not approvals or commitments. Never include identity, contact, address, employer, or account data.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "transaction": {
          "type": "string",
          "enum": [
            "PURCHASE",
            "RENEWAL",
            "REFINANCE",
            "HELOC",
            "TRANSFER",
            "SWITCH"
          ]
        },
        "priceOrValue": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "downPaymentAmount": {
          "type": "number",
          "minimum": 0
        },
        "equityAmount": {
          "type": "number",
          "minimum": 0
        },
        "amortizationYears": {
          "type": "number",
          "enum": [
            25,
            30
          ],
          "description": "Product eligibility bucket, not the remaining payment amortization."
        },
        "remainingAmortization": {
          "type": "object",
          "properties": {
            "years": {
              "type": "integer",
              "minimum": 0,
              "maximum": 30
            },
            "months": {
              "type": "integer",
              "minimum": 0,
              "maximum": 11
            }
          },
          "required": [
            "years",
            "months"
          ],
          "additionalProperties": false
        },
        "termYears": {
          "anyOf": [
            {
              "type": "number",
              "enum": [
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                10
              ]
            },
            {
              "type": "array",
              "items": {
                "type": "number",
                "enum": [
                  1,
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  10
                ]
              },
              "minItems": 1,
              "maxItems": 8
            }
          ]
        },
        "rateType": {
          "type": "string",
          "enum": [
            "FIXED",
            "VARIABLE",
            "HELOC"
          ]
        },
        "occupancy": {
          "type": "string",
          "enum": [
            "OWNER",
            "OWNER_PLUS_RENTAL",
            "RENTAL",
            "SECOND_HOME"
          ]
        },
        "province": {
          "type": "string",
          "enum": [
            "BC",
            "AB",
            "SK",
            "MB",
            "ON",
            "QC",
            "NB",
            "NS",
            "PE",
            "NL",
            "YT",
            "NT",
            "NU"
          ]
        },
        "isFirstTimeBuyer": {
          "type": "boolean",
          "default": false
        },
        "isNewConstruction": {
          "type": "boolean",
          "default": false
        },
        "programMode": {
          "type": "string",
          "enum": [
            "standard",
            "bfs_alt",
            "promo",
            "any"
          ],
          "default": "any"
        },
        "creditScore": {
          "type": "integer",
          "minimum": 300,
          "maximum": 900
        },
        "pricingBucket": {
          "type": "string",
          "enum": [
            "INSURED",
            "INSURABLE",
            "UNINSURED",
            "HELOC"
          ]
        },
        "lender": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "specialtyFilters": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 60
          },
          "maxItems": 20
        },
        "page": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10000,
          "default": 1
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 120,
          "default": 8
        }
      },
      "required": [
        "transaction",
        "priceOrValue",
        "amortizationYears",
        "occupancy",
        "province"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  8. name
    pragmatic.compare_rates.v1
    title
    Compare rates, payments and term costs
    description
    One-call BC mortgage shopping: search the published catalog and compare the lowest matching rates with monthly payments, financed default insurance, term interest, remaining balances and a +1 percentage point payment sensitivity. Uses the website's mortgage-core calculators. Sorts by APR, not suitability; excludes unknown fees and penalties. Use page and limit (up to 120) to retrieve every match. Anonymous scenario numbers only.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "transaction": {
          "type": "string",
          "enum": [
            "PURCHASE",
            "RENEWAL",
            "REFINANCE",
            "HELOC",
            "TRANSFER",
            "SWITCH"
          ]
        },
        "priceOrValue": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "downPaymentAmount": {
          "type": "number",
          "minimum": 0
        },
        "equityAmount": {
          "type": "number",
          "minimum": 0
        },
        "amortizationYears": {
          "type": "number",
          "enum": [
            25,
            30
          ],
          "description": "Product eligibility bucket, not the remaining payment amortization."
        },
        "remainingAmortization": {
          "type": "object",
          "properties": {
            "years": {
              "type": "integer",
              "minimum": 0,
              "maximum": 30
            },
            "months": {
              "type": "integer",
              "minimum": 0,
              "maximum": 11
            }
          },
          "required": [
            "years",
            "months"
          ],
          "additionalProperties": false
        },
        "termYears": {
          "anyOf": [
            {
              "type": "number",
              "enum": [
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                10
              ]
            },
            {
              "type": "array",
              "items": {
                "type": "number",
                "enum": [
                  1,
                  2,
                  3,
                  4,
                  5,
                  6,
                  7,
                  10
                ]
              },
              "minItems": 1,
              "maxItems": 8
            }
          ]
        },
        "rateType": {
          "type": "string",
          "enum": [
            "FIXED",
            "VARIABLE",
            "HELOC"
          ]
        },
        "occupancy": {
          "type": "string",
          "enum": [
            "OWNER",
            "OWNER_PLUS_RENTAL",
            "RENTAL",
            "SECOND_HOME"
          ]
        },
        "province": {
          "type": "string",
          "enum": [
            "BC",
            "AB",
            "SK",
            "MB",
            "ON",
            "QC",
            "NB",
            "NS",
            "PE",
            "NL",
            "YT",
            "NT",
            "NU"
          ]
        },
        "isFirstTimeBuyer": {
          "type": "boolean",
          "default": false
        },
        "isNewConstruction": {
          "type": "boolean",
          "default": false
        },
        "programMode": {
          "type": "string",
          "enum": [
            "standard",
            "bfs_alt",
            "promo",
            "any"
          ],
          "default": "any"
        },
        "creditScore": {
          "type": "integer",
          "minimum": 300,
          "maximum": 900
        },
        "pricingBucket": {
          "type": "string",
          "enum": [
            "INSURED",
            "INSURABLE",
            "UNINSURED",
            "HELOC"
          ]
        },
        "lender": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "specialtyFilters": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 60
          },
          "maxItems": 20
        },
        "page": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10000,
          "default": 1
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 120,
          "default": 8
        }
      },
      "required": [
        "transaction",
        "priceOrValue",
        "amortizationYears",
        "occupancy",
        "province"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  9. name
    pragmatic.calculate_batch.v1
    title
    Compare calculator scenarios in one request
    description
    Run up to 8 independent mortgage calculations in one round trip. Fetch each calculator schema first. Use scenario IDs such as option_a (never names). Returns ordered results with individual errors so valid scenarios still complete. No identity or contact data.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "calculations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "pattern": "^[a-z][a-z0-9_]{0,31}$"
              },
              "slug": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "input": {
                "type": "object",
                "additionalProperties": {}
              }
            },
            "required": [
              "id",
              "slug",
              "input"
            ],
            "additionalProperties": false
          },
          "minItems": 1,
          "maxItems": 8
        }
      },
      "required": [
        "calculations"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  10. name
    pragmatic.search_site.v1
    title
    Search mortgage guides and services
    description
    Search Pragmatic Mortgage's public, editorially reviewed guides, FAQs, products, services, news, comparisons, and location pages. Returns short excerpts and canonical URLs.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "query": {
          "type": "string",
          "minLength": 2,
          "maxLength": 160
        },
        "contentType": {
          "type": "string",
          "enum": [
            "all",
            "guide",
            "faq",
            "product",
            "service",
            "news",
            "comparison",
            "location"
          ],
          "default": "all"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 20,
          "default": 8
        }
      },
      "required": [
        "query"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  11. name
    pragmatic.find_brokers.v1
    title
    Find a licensed mortgage broker
    description
    Find public Pragmatic Mortgage broker profiles in British Columbia by region, language, or expertise and return public booking links. Does not create a lead or share user data.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "province": {
          "type": "string",
          "enum": [
            "BC",
            "AB",
            "SK",
            "MB",
            "ON",
            "QC",
            "NB",
            "NS",
            "PE",
            "NL",
            "YT",
            "NT",
            "NU"
          ]
        },
        "region": {
          "type": "string",
          "maxLength": 100
        },
        "language": {
          "type": "string",
          "maxLength": 60
        },
        "query": {
          "type": "string",
          "maxLength": 120
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 20,
          "default": 8
        }
      },
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }
  12. name
    pragmatic.get_next_steps.v1
    title
    Get safe mortgage next steps
    description
    Return canonical public URLs for a purchase, renewal, refinance, HELOC, rate review, calculator session, broker consultation, or secure application. This tool never submits a form or collects confidential information.
    annotations
    read Only Hint
    Yes
    untrusted Content Hint
    No
    input Schema
    {
      "type": "object",
      "properties": {
        "goal": {
          "type": "string",
          "enum": [
            "purchase",
            "renewal",
            "refinance",
            "heloc",
            "compare_rates",
            "calculate",
            "learn",
            "talk_to_broker",
            "apply"
          ]
        },
        "province": {
          "type": "string",
          "enum": [
            "BC",
            "AB",
            "SK",
            "MB",
            "ON",
            "QC",
            "NB",
            "NS",
            "PE",
            "NL",
            "YT",
            "NT",
            "NU"
          ]
        }
      },
      "required": [
        "goal"
      ],
      "additionalProperties": false,
      "$schema": "http://json-schema.org/draft-07/schema#"
    }

Open the full public tool guide → · Structured data (JSON)