Quickstart
Step-by-step guide to integrating your CRM with Spot2 Ingestion.
Prerequisites
Before you begin, make sure you have:
- A REST endpoint that exposes active listings selected for Spot2 as JSON.
- Your endpoint must support the
updated_sinceparameter (recency filter by modification date). - The ability to add authentication (API key, bearer token, or custom header).
- Offset-based pagination implemented.
- Commercial properties (not residential).
Step 1 — Build your endpoint
Create a GET endpoint that returns active listings explicitly selected by the user to appear in Spot2 as JSON:
GET https://your-crm.com/api/v1/spot2/properties
Minimum requirements:
- Content-Type:
application/json. - Authentication:
x-api-keyorAuthorization: Bearer. - Pagination: offset with
meta.nextin the response. - Each property must include at least these fields:
external_id— your unique, immutable identifier.property_type— one of:office,retail,industrial,terrain.modality—rent,saleorrent_and_sale.price.rent_priceorprice.sale_price- at least one price greater than 0.price.currency- ISO 4217 code (MXNorUSD).location.latitude- decimal latitude.location.longitude- decimal longitude.location.street- street.location.city- city.location.state- state.location.postal_code- resolvable postal code.contact.name- commercial contact name.contact.email- contact email address.contact.phone- contact phone number.
Highly recommended fields:
updated_at- last modification date in ISO 8601.photos- we recommend 3 or more public URLs.
Full field details, types, validations, and examples are in Property Schema.
Step 2 — (Optional) Set up your webhook
If you want to receive notifications when Ingestion accepts or rejects a property, expose a POST endpoint:
POST https://your-crm.com/api/webhooks/spot2/feedback
You will receive Ingestion webhook states:
PROCESSING: the property was accepted and sent to the downstream publication flow.REJECTED: the property was rejected because of blocking errors. Includesmessageswith natural-language reasons.
If you don't set up the webhook, your properties still get published but you won't receive error notifications.
The full webhook contract is in Feedback Webhook.
Step 3 — Implement deletion
Expose an endpoint that returns the IDs of properties deleted from your CRM or removed from the Spot2 selection:
GET https://your-crm.com/api/v1/spot2/properties/deleted
This endpoint is required. Spot2 queries it in every cycle to detect delistings and deactivate properties. Without it, properties deleted from your CRM or removed from the Spot2 selection will remain published in Spot2.
Details in Deletion Protocol.
Deliverables summary
| # | What you need | Required | Reference doc |
|---|---|---|---|
| 1 | GET endpoint for properties | Yes | Sync Protocol + Property Schema |
| 2 | POST endpoint for webhook | No | Feedback Webhook |
| 3 | GET endpoint for deletions | Yes | Deletion Protocol |
Next steps
- Property Schema: complete field reference.
- Sync Protocol: your API contract.
- Lifecycle: what happens to a property once you send it.
- QA Rules: what we validate and why.
- Integration Examples: concrete request/response cases.