Skip to main content
Version: v1.0

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_since parameter (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-key or Authorization: Bearer.
  • Pagination: offset with meta.next in the response.
  • Each property must include at least these fields:
    • external_id — your unique, immutable identifier.
    • property_type — one of: office, retail, industrial, terrain.
    • modalityrent, sale or rent_and_sale.
    • price.rent_price or price.sale_price - at least one price greater than 0.
    • price.currency - ISO 4217 code (MXN or USD).
    • 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. Includes messages with 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 needRequiredReference doc
1GET endpoint for propertiesYesSync Protocol + Property Schema
2POST endpoint for webhookNoFeedback Webhook
3GET endpoint for deletionsYesDeletion Protocol

Next steps