Developer API · v1

47,058 verified realtor contacts, one GET away

The same dataset behind our lists — as a REST API for Clay tables, Zapier zaps, n8n flows and your own code. Free key, free counts; you only spend credits when you pull contact rows.

Get your free API key →

Quickstart

# 1. Create a free key at agentroster.ca/account → “API access”
# 2. Counts are free — how many Top Producer brokers in Durham?
curl "https://agentroster.ca/api/v1/count?region=Durham&producer_tier=Top%20Producer&is_broker=Y" \
  -H "Authorization: Bearer ar_your_key_here"

# → {"count": 63, "one_time_csv_price_cad": 19, ...}

# 3. Pull the rows (1 credit each)
curl "https://agentroster.ca/api/v1/agents?region=Durham&producer_tier=Top%20Producer&is_broker=Y&limit=100" \
  -H "Authorization: Bearer ar_your_key_here"

Endpoints

Endpoint Returns Cost
GET /api/v1/me Key info: email, credit balance, active subscriptions. Free
GET /api/v1/regions Filterable regions with agent counts. Free
GET /api/v1/cities Filterable cities with agent counts. Free
GET /api/v1/count Exact match count for any filter set (+ the one-time CSV price). Free
GET /api/v1/agents Full contact rows: name, email, phone, brokerage, website, awards… 1 credit / row
GET /api/v1/events The Signals feed: new agents, brokerage moves, departures — with dates. Signals/Intel sub

Auth: Authorization: Bearer ar_… or X-API-Key header. All responses JSON. Fair use: keep it under ~60 requests/minute.

Filters (query params on /count and /agents)

region e.g. Toronto, Peel, Durham — values from /regions
city e.g. Mississauga — values from /cities
source Royal LePage · Century 21 · RE/MAX · Right at Home · Sutton
producer_tier Top Producer (award winners)
website_type custom = agents with their own site
email_type personal_domain = own-brand email
is_broker / has_phone / has_website Y to require the flag
top1pct 1 = top producers who also own a website
limit / offset paging on /agents — limit ≤ 1000, default 100

Recipes

Clay — enrich or source rows

Add an HTTP API column → GET https://agentroster.ca/api/v1/agents?city={{City}}&limit=25 with header Authorization: Bearer ar_…. Map agents[].email / .phone / .brokerage into columns. Use /count first (free) to size a market before spending credits.

Zapier / n8n / Make — new-agent automation

Poll /api/v1/events?type=new_agent on a schedule (weekly matches our scan cadence; dedupe on id) and pipe every new licensee in your market straight into your CRM, cold-email tool or Slack. Requires an active Signals or Brokerage Intel subscription on the key's email — the API is just another way to receive what you already pay for.

Plain code

const res = await fetch(
  'https://agentroster.ca/api/v1/agents?region=Calgary&website_type=custom&limit=200',
  { headers: { Authorization: `Bearer ${process.env.AGENTROSTER_KEY}` } }
);
const { agents, credits_remaining } = await res.json();

Credits

1 credit = 1 contact row from /agents. Counts, metadata and the events feed never use credits. Buy from your account page — credits never expire.

Starter pack
$49 CAD
1,000 credits · $0.049/row
Growth pack
$199 CAD
10,000 credits · $0.020/row

Need bigger volume or a partnership (Clay data provider, reseller)? Email hello@agentroster.ca.

Business contact data compiled from public brokerage rosters. API use is subject to our terms — you're responsible for CASL-compliant outreach, and agent opt-outs propagate to API responses. No reselling raw data.