# DeedRead > AI-powered pre-offer property due-diligence for Toronto and Vancouver real estate. Submit a listing plus documents (depreciation reports, strata minutes, title searches) and get a scored, client-ready report in minutes. Positioned as a screening aid, not legal or appraisal advice. Mission: give realtors the power to show their clients everything the documents disclose. Every finding is cited to its source page, and uploaded documents are never stored (text is extracted client-side; only extracted text is processed). ## Using DeedRead programmatically AI agents can sign up, create an API key, and run analyses without a human in the loop. 1. Create an account at https://deedread.ca/login 2. Create an API key at https://deedread.ca/developer 3. Call the API with header: Authorization: Bearer dr_live_... ## API - GET https://deedread.ca/api/v1/me Verify a key and read the account's remaining entitlement. - POST https://deedread.ca/api/v1/analyze Run one analysis. JSON body: { "propertyType": "strata" | "freehold", "listingUrl": "https://www.realtor.ca/real-estate/...", // optional "listingText": "Asking price $748,000\n2 Bed 2 Bath...", // optional pasted listing page text "market": "Vancouver, BC", // optional "buyerProfile": "First-time buyer", // optional "notes": "Agent notes to steer the analysis", // optional "context": { // optional, all fields default to "unspecified" "horizon": "short" | "medium" | "long" | "indefinite", // hold period: <3y / 3-7y / 7-15y / 15y+ "use": "owner_occupied" | "long_term_rental" | "short_term_rental" | "pied_a_terre", "stage": "browsing" | "writing_offer" | "subjects_pending" | "rescission" }, "manualData": { "address": "...", "askingPrice": "899000" }, // optional "documents": [ { "name": "Depreciation Report", "text": "..." } ] // optional, already-extracted text } Returns { "ok": true, "report": { ... } }. Provide at least one of listingUrl, listingText, documents, or manualData. - POST https://deedread.ca/api/v1/analyze?async=1 The same call, but returns 202 { "ok": true, "job_id": "...", "status": "running" } straight away instead of holding the connection for the minutes a report takes. Use this if you cannot wait on a socket. - GET https://deedread.ca/api/v1/jobs/ Collect an async report. Answers { "status": "running" } until it is ready, then the same body the synchronous call would have returned. A report stays collectable for 60 minutes, and for 5 minutes after it is first collected; nothing is kept beyond that. ## MCP https://deedread.ca/api/mcp is a hosted MCP server speaking the streamable HTTP transport. Tools: start_analysis, get_analysis, check_entitlement. Human setup for Claude and ChatGPT: https://deedread.ca/api-docs. Two ways to authenticate: - An API key header (Authorization: Bearer dr_live_...), the header path for Claude custom connectors that offer Request headers, and for Claude Code. - OAuth 2.1 with dynamic client registration, which is how ChatGPT connects and the usual Claude path. Discovery starts at https://deedread.ca/.well-known/oauth-protected-resource; PKCE S256, public clients, authorization code + refresh. "context" is worth setting: the hold period decides which dated capital projects count against the buyer, the intended use decides whether a rental bylaw is a finding or a footnote, and the deal stage sets how urgent the questions are. Anything left unspecified is treated as unknown and is not guessed. start_analysis documents are already-extracted text. Per document 1,200,000 characters; across the package 2,000,000; HTTP body 4 MB. If a document will not fit, the tool result says so. Do not silently drop the tail. get_analysis returns a short summary plus a time-limited download URL for the client-facing report (https://deedread.ca/r/...), not the full report JSON. Hosts cap a tool result at about 150,000 characters. ## Privacy Original documents never leave the client. Extract text yourself and send only the text; DeedRead stores no documents. ## Docs - Connector setup (Claude and ChatGPT): https://deedread.ca/api-docs - REST, CLI, and MCP contract: https://deedread.ca/api-docs/developers - Accessibility statement (WCAG 2.2 AA, known gaps, how to report a barrier): https://deedread.ca/accessibility