Quardlyn Developers

Build property software that connects directly with Quardlyn.

Synchronise properties through the production CRM API, manage listings, upload media, track lifecycle changes and test outbound webhook simulations in sandbox. Available in minutes.

Latest API Version
v1.0
API Status
Operational
Supported
Property CRM integrations
Changelog
CRM API v1 public baseline

Interactive API Reference

GET/api/v1/crm/propertiesTry with Postman
List properties

Lists properties owned by the authenticated CRM connection with pagination and filters.

PurposeList properties
HTTP MethodGET
URL/api/v1/crm/properties
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
GET/api/v1/crm/properties/{external_ref}Try with Postman
Read a property

Returns the canonical property document for an external reference.

PurposeRead a property
HTTP MethodGET
URL/api/v1/crm/properties/{external_ref}
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
GET/api/v1/crm/properties/lookup?id_type=external_ref&value={external_ref}Try with Postman
Lookup a property

Looks up by explicit identifier type such as external_ref or property_uid.

PurposeLookup a property
HTTP MethodGET
URL/api/v1/crm/properties/lookup?id_type=external_ref&value={external_ref}
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
POST/api/v1/crm/propertiesTry with Postman
Create or upsert a property

Creates or updates a listing by canonical payload.

PurposeCreate or upsert a property
HTTP MethodPOST
URL/api/v1/crm/properties
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
PUT/api/v1/crm/properties/{external_ref}Try with Postman
Replace a property

Replaces the canonical property document for an external reference.

PurposeReplace a property
HTTP MethodPUT
URL/api/v1/crm/properties/{external_ref}
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
PATCH/api/v1/crm/properties/{external_ref}Try with Postman
Partially update a property

Updates supplied fields while preserving the rest of the record.

PurposePartially update a property
HTTP MethodPATCH
URL/api/v1/crm/properties/{external_ref}
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
DELETE/api/v1/crm/properties/{external_ref}Try with Postman
Delete or inactivate

Deletes, withdraws, or inactivates depending on connection policy.

PurposeDelete or inactivate
HTTP MethodDELETE
URL/api/v1/crm/properties/{external_ref}
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
POST/api/v1/crm/properties/{external_ref}/withdrawTry with Postman
Withdraw

Marks a property withdrawn.

PurposeWithdraw
HTTP MethodPOST
URL/api/v1/crm/properties/{external_ref}/withdraw
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
POST/api/v1/crm/properties/{external_ref}/archiveTry with Postman
Archive

Archives a property.

PurposeArchive
HTTP MethodPOST
URL/api/v1/crm/properties/{external_ref}/archive
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
POST/api/v1/crm/properties/{external_ref}/restoreTry with Postman
Restore

Restores an archived property.

PurposeRestore
HTTP MethodPOST
URL/api/v1/crm/properties/{external_ref}/restore
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
POST/api/v1/crm/properties/{external_ref}/reactivateTry with Postman
Reactivate

Reactivates a previously inactive property.

PurposeReactivate
HTTP MethodPOST
URL/api/v1/crm/properties/{external_ref}/reactivate
Required HeadersX-CRM-Key, X-CRM-Timestamp, X-CRM-Nonce, X-CRM-Signature, Content-Type: application/json
Required FieldsCreate/upsert requires property.external_ref, property.department and property.display_address. Live listings also require publish-ready price/address data.
Optional FieldsAll optional canonical fields from the Canonical Schema page are accepted when present.
PermissionsAuthenticated CRM connection with property write permission.
Rate LimitsTracked by API key/application. Use the Rate Limits page and console usage screens to inspect current counters.

Headers

X-CRM-Key: crm_key_xxx
X-CRM-Timestamp: 1782907200
X-CRM-Nonce: unique-request-id
X-CRM-Signature: hmac_sha256

Response

{
  "success": true,
  "external_ref": "CRM-001",
  "status": "updated"
}

Error Response

{
  "success": false,
  "error": {
    "code": "validation_failed",
    "message": "property.department is required.",
    "field": "property.department",
    "retryable": false
  }
}
Use the Developer Console API Explorer for sandbox testing and the public Postman collection for real signed API calls.