New: Client Portal with DocuSign e-signatures now available. Get started →

A
AureumSuite

API Documentation

Integrate Aureum Suite with your existing tools using our REST API and webhooks. API access requires the Grow plan or higher.

Authentication

All API requests require authentication via a Bearer token. Generate an API key in your admin panel under Settings.

curl -H "Authorization: Bearer YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     https://your-tenant.aureumapp.com/api/properties

Base URL: https://your-tenant.aureumapp.com

Rate limit: 100 requests per minute

Content type: application/json

Error Handling

StatusMeaning
200Success
201Created
400Bad request — missing or invalid parameters
401Unauthorized — invalid or missing API key
403Forbidden — feature not available on your plan
404Not found
429Rate limit exceeded
500Internal server error

Error response format:

{
  "error": "Human-readable error message",
  "upgrade": true,           // present if plan upgrade needed
  "requiredPlan": "Grow"     // which plan is required
}

Endpoints

GET/api/properties

List all properties for the authenticated tenant.

Parameters

NameTypeRequiredDescription
statusstringNoFilter by status: ACTIVE, PENDING, SOLD, COMING_SOON
featuredbooleanNoFilter featured listings only

Response

[
  {
    "id": "clx...",
    "title": "Modern Villa in Beverly Hills",
    "address": "123 Palm Dr",
    "city": "Beverly Hills",
    "state": "CA",
    "price": 4500000,
    "status": "ACTIVE",
    "bedrooms": 5,
    "bathrooms": 4,
    "sqft": 4200,
    "isFeatured": true,
    "createdAt": "2025-01-15T..."
  }
]
POST/api/properties

Create a new property listing.

Parameters

NameTypeRequiredDescription
titlestringYesProperty title
addressstringYesStreet address
citystringYesCity
statestringYesState
zipstringNoZIP code
pricenumberNoListing price in dollars
bedroomsnumberNoNumber of bedrooms
bathroomsnumberNoNumber of bathrooms
sqftnumberNoSquare footage
propertyTypestringNoSINGLE_FAMILY, CONDO, TOWNHOUSE, LAND, COMMERCIAL
statusstringNoACTIVE, PENDING, SOLD, COMING_SOON (default: ACTIVE)

Response

{
  "id": "clx...",
  "title": "Modern Villa in Beverly Hills",
  "slug": "modern-villa-in-beverly-hills",
  "status": "ACTIVE",
  "createdAt": "2025-01-15T..."
}
GET/api/contacts

List all contacts for the authenticated tenant.

Parameters

NameTypeRequiredDescription
typestringNoFilter by type: BUYER, SELLER, INVESTOR, VENDOR, OTHER
tagstringNoFilter by tag
searchstringNoSearch by name or email

Response

[
  {
    "id": "clx...",
    "firstName": "John",
    "lastName": "Smith",
    "email": "john@example.com",
    "phone": "+1-555-0100",
    "type": "BUYER",
    "tags": ["vip", "beverly-hills"],
    "score": 85,
    "createdAt": "2025-01-10T..."
  }
]
POST/api/contacts

Create a new contact.

Parameters

NameTypeRequiredDescription
firstNamestringYesFirst name
lastNamestringYesLast name
emailstringNoEmail address
phonestringNoPhone number
typestringNoBUYER, SELLER, INVESTOR, VENDOR, OTHER (default: BUYER)
tagsstring[]NoArray of tags

Response

{
  "id": "clx...",
  "firstName": "John",
  "lastName": "Smith",
  "createdAt": "2025-01-10T..."
}
GET/api/leads

List all leads for the authenticated tenant.

Parameters

NameTypeRequiredDescription
statusstringNoFilter by status: new, contacted, qualified, converted, lost
sourcestringNoFilter by source

Response

[
  {
    "id": "clx...",
    "name": "Jane Doe",
    "email": "jane@example.com",
    "phone": "+1-555-0200",
    "source": "website",
    "status": "new",
    "message": "Interested in the Beverly Hills listing",
    "createdAt": "2025-01-12T..."
  }
]
GET/api/tasks

List all tasks for the authenticated tenant.

Parameters

NameTypeRequiredDescription
statusstringNoFilter: pending, in_progress, completed
assignedToIdstringNoFilter by assigned user ID

Response

[
  {
    "id": "clx...",
    "title": "Follow up with John Smith",
    "type": "call",
    "priority": "HIGH",
    "status": "pending",
    "dueDate": "2025-01-20T...",
    "createdAt": "2025-01-15T..."
  }
]

Webhooks

Webhooks send real-time HTTP POST requests to your URL when events occur. Configure webhooks in your admin panel under Admin → Webhooks. Webhooks require the Elite plan.

EventDescription
lead.createdA new lead was submitted through a form or API
lead.updatedA lead's status or details were changed
contact.createdA new contact was added
contact.updatedA contact's details were modified
property.createdA new property listing was created
property.updatedA property's details or status changed
showing.createdA new showing was scheduled
showing.updatedA showing was updated or status changed
task.createdA new task was created
task.completedA task was marked as completed

Payload Format

{
  "event": "lead.created",
  "timestamp": "2025-01-15T10:30:00.000Z",
  "data": {
    "id": "clx...",
    "name": "Jane Doe",
    "email": "jane@example.com",
    "source": "website",
    "status": "new",
    "message": "Interested in the Beverly Hills listing"
  }
}

Verifying Signatures

Each webhook delivery includes an X-Aureum-Signature header containing an HMAC-SHA256 signature of the request body using your webhook's signing secret.

// Node.js verification example
const crypto = require('crypto');

function verifySignature(body, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(body)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

Ready to integrate?

Get started with the Grow plan for API access, or Elite for webhooks and priority support.