# Real Deals Snap

Hub: https://real-deals.app/snap/

Scoped-key MCP: https://real-deals.app/api/v1/mcp

REST: https://real-deals.app/api/v1

Schema: https://real-deals.app/snap/openapi.json

Snap uses the active Real Deals app's existing sign-in, saved properties, database and membership/trial checks. Customers do not need to copy records into a separate workspace. The hosting platform manages OAuth for the provisioned Real Deals ChatGPT plugin, with 12 tools. Install and connect that plugin in ChatGPT. The custom-domain scoped-key MCP endpoint exposes the eight Snap tools to Claude Code, xAI API and compatible clients using Authorization: Bearer YOUR_SNAP_KEY. It does not replace the hosting OAuth connection or create a hosting identity. Claude/Grok web custom connections require custom-header support. Public-directory approval and provider-account testing are separate.

Automation clients create a scoped API key in the hub. Keys are shown once, stored as SHA-256 hashes, expire after 30 days and can be revoked by the owner. Use your platform's secret manager. Scopes: leads:read, leads:write, events:read. An active Real Deals trial or membership is required. Manage a separate MCP OAuth connection in the AI app's connector settings.

## MCP tools

The existing get_launch_readiness, list_my_properties, get_my_property and save_property tools remain. Snap adds real_deals_integrations, real_deals_calculate_offer, real_deals_canva_brief, real_deals_calendar_file, real_deals_list_leads, real_deals_create_lead, real_deals_update_lead and real_deals_list_events.

Private property tools enforce ownership. Offer calculations use your supplied numbers. Canva tools prepare text and CSV; calendar tools prepare ICS files. Snap performs no paid comps lookup, skip trace, call, mail purchase, Slack message, design publication or booking.

## REST setup

Send Authorization: Bearer YOUR_SNAP_KEY to protected routes. JSON bodies use Content-Type: application/json.

- GET /leads?query=Beaumont&limit=50: existing saved properties, newest first, bare array.
- POST /leads: address, latitude and longitude are required. Optional fields: city, propertyType (Residential or Commercial), note, tags, source and status. Confirm the actual property's coordinates.
- PATCH /leads: id and status and/or note.
- GET /events?limit=50: new and updated property events, newest first. Deduplicate by id.
- POST /calculate-offer: arv, repairs and optional offerRatio, fees, purchasePrice.
- POST /canva-brief: address, headline and optional description and price.
- POST /calendar-file: title, start and end (ISO timestamps with timezones), optional address and note.

Send a stable Idempotency-Key on property creation. Repeating the same normalized data returns the existing property. Different data with the same key returns 409. Each status/note update generates an activity event.

Limits: 32 KB JSON bodies; 100 results per request; 1,000 protected operations per member per hour; 60 public utility calls per IP per minute; 20 active API keys per account. Poll frequently enough that fewer than 100 new records arrive between polls. High-volume pagination remains a rollout gate. Existing properties are immediately readable; event recording begins with the Snap migration, without historical backfill.

## Platform connections

zapier/index.cjs provides a private CLI integration: New Lead, Lead Activity, Find Lead and Create Lead. Use leads:read for its authentication check, plus events:read and/or leads:write for those steps. Create Lead requires address and verified coordinates. Validate/test/push from a Zapier developer account; public directory publication has not been performed.

Recipes:

1. Snap Lead Activity to Slack Send Channel Message.
2. Calendly Invitee Created to Snap Create Lead; map property-address and verified-coordinate booking fields.
3. Snap New Lead to Google/Outlook Calendar Create Event; choose the scheduling fields.
4. Property brief CSV to Canva Bulk Create.

Customers connect provider accounts in Zapier or Make. Native Slack, Canva Connect, Google Calendar and Calendly OAuth apps are not registered. CSV and ICS exports work without those registrations. Provider-account testing and marketplace publication remain separate gates.

examples/replit.mjs uses Node 20+ and REAL_DEALS_SNAP_KEY. examples/grok.mjs also requires the customer's XAI_API_KEY and current XAI_MODEL; it allows only the lead-listing tool. AI API and automation-platform costs follow the customer's own account.

## Storage

Keys, deduplication, rate counters and events use the existing D1 database. Schema-only migrations add Snap tables and property-change triggers. Every private query filters by the owner. API-key access does not create a hosting identity or authorize other providers. The Snap-key MCP route omits the four original platform-only tools. Native account and trial/membership checks still apply. Signed-in mutations check Origin headers.
