Skip to main content

API Authentication

The FeedSync read API lets you fetch your listings, agents, media, and stats, and capture leads, programmatically.

Base URL

https://feedsync.com.au/api/v1

API keys

The read API authenticates with an API key. Keys are created per site and can only access that site's data.

  1. In the dashboard, open the site you want to expose and go to its API keys.
  2. Create a key, give it a name, and choose its scopes (see below).
  3. Copy the key — it's shown once and looks like fs_xxxxxxxx…. Store it securely and never commit it to source control.
note

When you connect a WordPress site via pairing, a read-only key is created for it automatically — you don't need to make one by hand for that.

Making a request

Send the key as a Bearer token (or the X-API-Key header):

curl https://feedsync.com.au/api/v1/sites/{site}/listings \
-H "Authorization: Bearer fs_your_api_key" \
-H "Accept: application/json"

{site} is your site's UUID — the site the key belongs to.

Scopes

Each key grants only the scopes you assign:

ScopeAllows
listings:readRead listings, search, featured, fields, and media objects.
stats:readRead stats summaries.
agents:readRead agents.
leads:writeSubmit leads.

A request missing the required scope returns 403:

{ "error": "Forbidden: Missing listings:read scope" }

Rate limiting

Requests are rate-limited per minute, based on your plan (Starter 60/min, Professional 600/min, Enterprise unlimited). The limit is shared across all keys on a site, so adding more keys doesn't raise throughput.

Responses include:

HeaderMeaning
X-RateLimit-LimitRequests allowed per minute.
X-RateLimit-RemainingRequests left in the current window.

Exceeding the limit returns 429 with a Retry-After header:

{ "error": { "code": "RATE_LIMIT_EXCEEDED", "message": "Too many requests." } }

Errors

StatusWhen
401Missing or invalid API key — { "error": { "code": "UNAUTHORIZED", … } }
403Key lacks the required scope, or can't access this site.
404The resource doesn't exist.
422Invalid parameters — { "error": { "code": "VALIDATION_ERROR", "details": { … } } }
429Rate limit exceeded.

Uploading data (push API)

Authentication above covers the read API. To push REAXML into FeedSync programmatically, use the separate OAuth2 upload API — see API Feeds.