Skip to content

Developer Portal

Developer API V1

Zyelra Developer API

Agency-scoped HTTP API for inventory, CRM, stays, messaging, webhooks, and async jobs. Use it to build custom applications, internal tools, integrations, and automation workflows. Authenticate with Bearer API keys under the developer base path /api/v1/developer.

Machine-readable contract: OpenAPI specification. Looking for first-party connectors? Browse integrations · Developer guides.

Getting Started

Overview

The Developer API lets external applications work with one Zyelra agency — custom apps, internal tools, integrations, and automation workflows. It is separate from the dashboard session API, admin platform API, and public storefront.
  • Inventory & availabilityProperties, units, quotes, availability blocks, and calendar events.
  • CRM & staysLeads, stay requests, stay lifecycle, guests, and payment links.
  • OperationsTenants, tenancies, tasks, landlords, inspections, and messages.
  • IntegrationsOutbound webhooks, event catalog, async jobs, and bulk writes.

Base URL for this deployment: https://estateflow.smartlancedesigns.com/api/v1/developer. Agency context always comes from the API key — never from a path or query parameter.

Quickstart

Get to a successful request quickly. Grant only the scopes you need after your first call works.
  1. 1. Create an API key

    Generate a key in agency settings. The full secret is shown once at creation.

    Open Developer API settings →
  2. 2. Authenticate

    Send the secret as an HTTP Bearer token. Session cookies are not accepted.

    HTTP

    Authorization: Bearer <API_KEY>
  3. 3. Make your first request

    List properties using the properties:read scope.

    cURL

    curl -G "https://estateflow.smartlancedesigns.com/api/v1/developer/properties" \
      -H "Authorization: Bearer <API_KEY>" \
      --data-urlencode "page=1" \
      --data-urlencode "page_size=20" \
      --data-urlencode "city=Austin"
  4. 4. Read the response

    Browse lists return an items array plus a meta pagination object.

    200 example

    {
      "items": [
        {
          "id": "00000000-0000-4000-8000-000000000001",
          "title": "Sample property",
          "slug": "northside-homes"
        }
      ],
      "meta": {
        "page": 1,
        "page_size": 20,
        "total": 1,
        "pages": 1
      }
    }
  5. 5. What's next?

Authentication

HTTP Bearer agency API keys. Use the Authorization header with your full secret.

Header

Authorization: Bearer <API_KEY>
  • Keys are agency-bound. A key cannot access another agency's data.
  • Revoked or expired keys return HTTP 401.
  • The complete secret is shown only once at creation.
  • Session cookies are not accepted for Developer API authentication.
  • Permissions are enforced through scopes assigned to each key.

Scopes

Grant only what your integration needs. Reserved write scopes that are not implemented yet still appear in the catalog and must not be relied on.

  • accounting:read — Read the chart of accounts, journals, ledger, bills, mappings, and other finance records.
  • accounting:write — Create journals, upload a partner chart of accounts, map accounts and parties, and report external changes.
  • agency:read — Read your agency public profile information.
  • availability:read — Check short-term availability and quotes.
  • availability:write — Create and manage availability blocks.
  • calendar:read — Read calendar events for units and stays.
  • channels:read — Read channel connections, listings, OTA status, and quarantined bookings.
  • channels:write — Connect channels, map listings, sync inventory, and manage Airbnb and Booking.com connections.
  • contacts:read — List and retrieve CRM Contacts and possible-matches (warning only).
  • contacts:write — Link and unlink Contact roles (explicit; no email/phone auto-merge).
  • guests:read — List and retrieve stay guests. Address is included; notes are omitted.
  • inspections:read — List and retrieve inspections and inspection activity.
  • inspections:write — Create inspections and drive reschedule, cancel, complete, no-show, notes, and task creation.
  • landlords:read — List landlords, linked properties, activity, and documents.
  • landlords:write — Create and update landlords, link properties, and add documents.
  • leads:read — List leads, follow-ups, activity, and status history.
  • leads:write — Create leads, update contact/source, link property/unit, set/complete follow-ups, assign/unassign, archive/restore, change status, and convert to Guest/Tenant.
  • messages:read — List conversations, message text, and templates.
  • messages:write — Reply in conversations, send email/SMS/WhatsApp, and manage templates.
  • payments:read — List stay payments, collection requests, fee schedules, and receipts.
  • payments:write — Issue payment links, record offline stay payments, void payments, and request deposit refunds.
  • properties:read — Read property inventory for your agency.
  • properties:write — Create, update, archive, and publish properties. Create leaves a draft unless publish is true.
  • stays:read — List and retrieve stays for your agency.
  • stays:write — Create and update stays and guests, issue guest links, and drive stay lifecycle actions.
  • tasks:read — List tasks, steps, evidence, templates, schedules, vendors, and readiness.
  • tasks:write — Create and update tasks, templates, schedules, vendors, evidence, and lifecycle actions.
  • tenancies:read — List and retrieve tenancies.
  • tenancies:write — Create, update, activate, and terminate tenancies. Create leaves a draft unless activate is true.
  • tenants:read — List and retrieve tenants.
  • tenants:write — Create, update, deactivate, and reactivate tenants (including bulk).
  • units:read — Read units belonging to your agency.
  • units:write — Create, update, and archive units. Create leaves a draft unless status is a live status such as available.
  • webhooks:read — List webhook endpoints and delivery history.
  • webhooks:write — Create, update, delete, rotate, test, and retry webhooks.

API Reference

Endpoints

Generated from the Developer API V1 OpenAPI contract. Filter by method, path, or scope.

API Reference

Agency

Read the agency profile bound to the authenticated API key.

API Reference

Properties

List, create, update, and archive properties. Supports browse and sync paging modes.

Common list filters include page, page_size, city, property_type, rental_type, is_featured, and sort. Maximum page size is 50.

Scope properties:read

Request

Parameters
ParameterTypeRequiredDescription
pagequeryintegerNo1-based page number
page_sizequeryintegerNoPage size (browse max 50; sync max 100)
cityquerystringNoCase-insensitive city contains filter
property_typequerystringNoExact property_type value
rental_typequerystringNoOnly properties with at least one matching published unit
is_featuredquerybooleanNoFilter featured listings
sortquerystringNoSort order
include_unpublishedquerybooleanNoWhen true, list all non-archived agency inventory (managed representation)
updated_afterquerystring (date-time)NoSync mode: inclusive lower bound on updated_at (RFC 3339)
updated_beforequerystring (date-time)NoSync mode: inclusive upper bound on updated_at (RFC 3339)
cursorquerystringNoSync mode: opaque keyset cursor
Example request
GET

/api/v1/developer/properties?page=1&page_size=20&city=Austin&sort=newest&rental_type=short_term

curl

curl -G "https://estateflow.smartlancedesigns.com/api/v1/developer/properties" \
  -H "Authorization: Bearer <API_KEY>" \
  --data-urlencode "page=1" \
  --data-urlencode "page_size=20" \
  --data-urlencode "city=Austin" \
  --data-urlencode "sort=newest" \
  --data-urlencode "rental_type=short_term"

Response

Example

{
  "items": [
    {
      "id": "Id",
      "title": "Title",
      "property_type": "Property Type",
      "city": "City",
      "country": "Country",
      "availability_label": "Availability Label"
    }
  ],
  "meta": {
    "page_size": 20
  }
}

Errors

  • 200Successful Response
  • 401Missing or invalid Developer API key
  • 403API key is missing the required scope
  • 422Validation Error
  • 429Rate limit exceeded (per-key or agency aggregate bucket).

API Reference

Units

List and manage units that belong to your agency inventory.

API Reference

Availability

Check short-term availability, quotes, and unavailable date ranges at the unit level. This does not provide booking locks or OTA inventory.

API Reference

Availability Blocks

Create and manage unit availability blocks used to hold inventory offline.

API Reference

Leads

Create, update, assign, archive, and sync leads. Bulk and async variants accept Idempotency-Key where documented.

API Reference

Contacts

List CRM Contacts, possible-matches, and manage explicit role links. Convert handoff is under leads.

API Reference

Channels

Connect channels, map listings, sync inventory, and manage Airbnb, Booking.com, and quarantined bookings.

API Reference

Tenants

Manage tenant records including bulk create/update and async jobs.

API Reference

Tenancies

Create and manage tenancies through activate and terminate lifecycle actions.

API Reference

Landlords

List, create, and update landlords, including property links, activity, and documents.

API Reference

Stay Requests

Submit a stay booking request. A stay request is not a guaranteed reservation unless your Zyelra workflow later confirms it.

API Reference

Stays

Create, update, and drive stays, including guest links, access release, and cancellation requests.

API Reference

Guests

List, create, and update guests associated with stays. Notes are stored and omitted from responses.

API Reference

Tasks

Create operational tasks and drive assign, start, complete, cancel, reopen, steps, evidence, templates, schedules, and vendors.

API Reference

Calendar

Read calendar events spanning stays and availability blocks.

API Reference

Inspections

List, create, and update inspections, including reschedule, cancel, complete, and no-show.

API Reference

Payments

Record stay payments, issue receipts, create collection requests, and manage fee schedules and obligations.

API Reference

Accounting

Read Zyelra's books and map them to another accounting product. Inbound change notices do not rewrite the ledger.

API Reference

Messages

Read the inbox, reply on email, SMS, and WhatsApp, manage templates, and record custom-channel traffic.

Platform

Webhooks

Manage outbound webhook endpoints, secrets, deliveries, and retries.

Platform

Events

Discover webhook event types available for subscription.

Platform

Async Jobs

Poll status and results for accepted async developer jobs.

Async flow

  1. Call an async bulk endpoint with Idempotency-Key when required.
  2. On HTTP 202, read the job id and Location header.
  3. Poll job status, then fetch the result path.

Platform

Sync

Many list endpoints support browse (offset) and sync (cursor) modes for keeping external systems up to date.
  • Browse — page and page_size with an items + meta envelope.
  • Sync — cursor-based incremental reads with a bounded lookback. Exceeding the lookback returns HTTP 422 with a sync reason in details.
  • Messages use lightweight updated_* filters rather than the full cursor sync protocol.
  • See each list operation's parameters in the API Reference for exact names.

Guides

Errors

Errors use a stable envelope. Successful and error responses include X-Request-Id when middleware completes normally.

Error envelope

{
  "error": {
    "code": "not_found",
    "message": "Human-readable message",
    "details": {}
  },
  "request_id": "req_01example"
}
  • 400Bad request
  • 401Missing or invalid API key
  • 403Missing required scope
  • 404Resource not found
  • 409Conflict (including idempotency mismatch)
  • 413Payload too large
  • 422Validation error
  • 429Rate limited (error.code = rate_limited)
  • 503 / 504Operational dependency or gateway timeout

Pagination envelope

{
  "items": [],
  "meta": {
    "page": 1,
    "page_size": 20,
    "total": 0,
    "pages": 0
  }
}

Guides

Rate Limits

Limits apply per API key. Additional agency-wide ceilings may apply across all keys.
  • Reads (per key): 600 requests/minute
  • Writes (per key): 60 requests/minute

Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset for the bucket that applied. When limited, the API returns HTTP 429 with Retry-After.

Guides

Idempotency

Send an Idempotency-Key header on write operations that declare it. Required vs optional varies by endpoint; async job acceptance uses the job idempotency contract.

Documented on 152 operations. Each endpoint notes when the header is supported.

  • Same key + same request body → original result is replayed
  • Same key + different request body → HTTP 409 conflict
  • Use Idempotency-Key for safe retries on supported writes

Guides

Security

Developer API keys provide agency-scoped access. Apply least privilege.
  • Keep API keys server-side.
  • Never commit keys to Git.
  • Never expose keys in browser JavaScript.
  • Never place keys in URLs.
  • Use environment variables or a secrets manager.
  • Give each key only the scopes it needs.
  • Revoke compromised or unused keys immediately.
  • Do not share API secrets.

Ready to integrate?

Create an agency API key, then use the OpenAPI contract for machine-readable details.