Access
- People connect Claude, ChatGPT or any MCP client by signing in with their Alertedly account. They see the workspaces they belong to.
- Integrations use an API key (
alyv_live_…) that an admin creates under Team & access → API & MCP. A key belongs to one workspace and acts with its creator's access: read, or read and write. - Send keys as
X-API-Key: alyv_live_…orAuthorization: Bearer alyv_live_…. Signed-in people in several workspaces pick one withX-Workspace-Id(REST) or the tools'workspaceargument (MCP).
MCP server
https://vendor.alertedly.com/mcpStreamable HTTP. Tools that change something (marked write) need a signed-in person or a read + write key; check_website and check_list use one check per website, unless we checked the site in the last 30 days.
| Tool | Access | What it does |
|---|---|---|
search_clubs | read | Open leads, Switch leads or your customers, filtered by incumbent, sport, region, city, size, status and signal (delivered: leads Alertedly found for you). Best first. |
get_club | read | One club: what it runs, the evidence, its check history, your team's notes, nearby clubs on the same platform, and who to contact with why we believe it. |
find_contact | write | Look for a club's decision maker and their email. Takes a few minutes; get_club then shows the contact. |
lookup_website | read | The club behind a website we checked in the last 30 days (doesn't count against your plan). |
check_website | write | Check a website now (one check, about a minute). Poll get_check. |
get_check | read | A check's progress, and the club once it's done. |
market_summary | read | Your market by region and sport, and each platform's footprint. |
market_moves | read | Clubs that changed platform, and clubs won and lost per platform. |
list_competitors | read | Tracked competitors and their latest weekly report. |
get_competitor_report | read | A weekly intelligence report (markdown, every line sourced). |
set_lead_status | write | Set a club's status: new, working, contacted, in_crm, won, lost, not_a_fit. |
add_note | write | Add a note to a club for your team. |
send_to_crm | write | Add up to 50 clubs to your CRM: matched by website or created, with a note of the evidence. They move to In CRM. |
find_in_crm | write | Which of up to 50 clubs are already in your CRM, by website. Found ones are linked; nothing is written to the CRM. |
dashboard_overview | read | The dashboard's home: lead counts, the best Open and Switch leads, platform footprints, coverage and this month's moves. |
update_clubs | write | Status and/or owner (a team member's email) for up to 1,000 clubs at once. |
list_team | read | Your team: email, role and territories. |
list_saved_views | read | Your team's saved searches. |
run_saved_view | read | The clubs in a saved view, best first. |
check_list | write | Check up to 500 websites as a list (known clubs answer at once; the rest use one check each). Poll get_list. |
list_uploads | read | Your lists, with progress. |
get_list | read | A list's rows: what each club runs, with evidence, or why it couldn't be checked. |
set_competitors | write | The platforms (up to 10) whose weekly intelligence you track. Admins only. |
report_mistake | write | Tell us a club's platform or evidence is wrong; we re-check it. |
request_coverage | write | Ask us to cover a region, sport or kind of club you don't see yet. |
my_workspace | read | The workspace the tools use: markets, your platform, competitors, and what's left of this month's plan. |
Try: “Find pickleball clubs in Texas on CourtReserve with 8+ courts”, “Prep me for a call with Lakewood Racquet Club”, “Which platforms won the most clubs this quarter?”, “Show me the new leads Alertedly found for us and give the Texas ones to Sam”.
REST API
https://vendor.alertedly.com/api/v1curl "https://vendor.alertedly.com/api/v1/clubs?lead=switch&incumbent=CourtReserve®ion=US-TX&limit=25" \
-H "X-API-Key: alyv_live_…"curl -X POST "https://vendor.alertedly.com/api/v1/lists" \
-H "X-API-Key: alyv_live_…" -H "Content-Type: application/json" \
-d '{"name": "Q4 targets", "rows": [{"name": "Lakewood Racquet Club", "website": "lakewoodracquet.com", "external_id": "acct-114"}]}'| Method | Path | Scope | What |
|---|---|---|---|
| GET | /workspace | read | Your workspace: markets, your platform, competitors |
| GET | /usage | read | This month's plan: checks included, used and left, and bought checks |
| GET | /overview | read | The dashboard's home: lead counts, best leads, platform footprints, coverage, this month's moves |
| GET | /clubs | read | Search: lead, priority (high, medium, low), open_kind, incumbent, sport, country, region, city, size, status, evidence, checked, signal (delivered: leads we found for you), q, sort (priority, name, location, checked, size), dir, page, limit (≤ 100) |
| GET | /clubs/export | read | The same filters as a CSV, best first (up to 10,000; 5 exports every 10 minutes) |
| POST | /clubs/bulk | write | {"club_ids": […], "status"?, "owner"?} for up to 1,000 clubs; owner is a member's email or null |
| GET | /clubs/{id} | read | One club with history, notes, nearby clubs and its contacts (name, role, email, confidence and the evidence) |
| POST | /clubs/{id}/contact-search | write | Look for the club's decision maker. Answers queued, already_queued, recent or retry_later |
| PATCH | /clubs/{id} | write | Status and/or owner: {"status": "working", "owner": "rep@company.com"} |
| POST | /clubs/{id}/notes | write | Add a note: {"text": "…"} |
| DELETE | /clubs/{id}/notes/{note_id} | write | Delete a note (yours, or any as an admin) |
| POST | /clubs/{id}/mistakes | write | {"text": "…"}: the platform or evidence is wrong; we re-check it |
| POST | /coverage-requests | write | {"text": "…"}: a region, sport or kind of club to cover |
| GET | /team | read | Members and pending invites: email, role, territories |
| GET | /views | read | Saved views: lead type and filters |
| POST | /views | write | {"name", "lead": "open"|"switch"|"customer", "filters": {…}, "sort"?, "shared"?}: opens the same in the dashboard |
| GET | /views/{id}/clubs | read | Run a saved view: its clubs, best first (page, limit) |
| DELETE | /views/{id} | write | Delete a saved view |
| GET | /lists | read | Your lists, with progress |
| POST | /lists | write | {"name", "rows": [{name, website, city, region, country, sport, external_id}] (≤ 10,000), "find_websites"?, "watch"?, "run"?}: known clubs match at once; the rest are checked (one check each). 202 with the job |
| GET | /lists/{id} | read | A list's rows with your external_id, status and the club with its evidence (page, limit ≤ 1,000) |
| PATCH | /lists/{id} | write | {"accounts": true}: this list is your customers (for "we found X% of your accounts") |
| DELETE | /lists/{id} | write | Discard a list that hasn't run |
| POST | /lists/{id}/run | write | Run a list uploaded with "run": false: {"find_websites"?, "watch"?} |
| GET | /accounts | read | Your customer lists against the market: found on your platform, on a competitor, no platform |
| GET | /lookup | read | ?url=… a club we checked in the last 30 days (free), else 404 |
| POST | /checks | write | {"url": "…"}: known clubs answer at once; otherwise 202 with a job id (one check). Send Idempotency-Key to retry safely |
| GET | /checks/{id} | read | A check's progress and result |
| GET | /market | read | Counts by region and sport; platform footprints |
| GET | /moves | read | ?months=1–24: moves and the scoreboard |
| GET | /competitors | read | Tracked competitors and their latest report |
| PUT | /competitors | write | Admins: {"platforms": […]} (≤ 10, from the catalogue) |
| GET | /competitors/catalogue | read | The platforms you can track, with how many sample clubs run each |
| GET | /competitors/reports/{id} | read | One weekly report (markdown) |
| POST | /crm/send | write | {"club_ids": […]} (≤ 50): add them to your CRM with the evidence; per-club results |
| POST | /crm/check | write | {"club_ids": […]} (≤ 50): which are already in your CRM, by website |
| POST | /integrations/crm | write | Signed-in admins only: {"kind", "key"} connects a CRM once it accepts the key |
OpenAPI 3: vendor-openapi.yaml. Leads we find for you carry the signal delivered for 30 days: GET /clubs?signal=delivered.
Lists take comma-separated values (lead=open,switch). Regions are ISO codes (US-TX, CA-ON). Searches return { clubs, pagination: { total, page, limit, has_more } }.
The club object
{
"id": "…", "name": "Austin Pickleball", "website": "https://austinpb.com", "sport": "pickleball",
"location": { "city": "Austin", "region": "Texas", "region_code": "US-TX", "country": "US" },
"size": { "courts": 14 },
"lead": { "type": "switch", "open_kind": null, "incumbent": "CourtReserve", "priority": "medium",
"priority_why": "On CourtReserve: win them from it · Large club", "signals": [], "why": "Runs CourtReserve for registration, checked live." },
"evidence": { "level": "verified", "platform": "CourtReserve", "registration_url": "https://…",
"note": null, "quote": null, "evidence_url": "https://app.courtreserve.com/Online/Portal/Index/1234", "also_linked": [], "also_uses": null, "checked_at": "2026-10-10T03:00:00Z" },
"status": "new", "owner": null, "source": "market", "url": "https://alertedly.com/vendor/clubs/…"
}lead.type:open(no specialist platform found: forms, email, by hand),switch(on a competitor's platform),customer(on yours),review(not enough evidence) ornot_a_lead(not a club, such as an association or a city programme, or a second listing of a club: kept in the data, never in lead lists or review).evidence.level:verified(checked live),candidate,reference,unknownorfetch_failed.lead.priority: how good a sales opportunity, never a prediction.high: no platform to displace (a form, by hand, or a system the club built), opening soon with no platform chosen, a club that left your platform for a competitor (win it back), or an organisation change at a club on a competitor.medium: on a competitor (it has to be won from it), registration through a governing body's portal, or a form not confirmed as how they register.low: a very small club, whatever it uses.priority_whysays which; the evidence is inevidence.
Limits and errors
- 60 requests a minute per key or person; over it,
429withRetry-After. - Errors are
{ error: { message, error_code }, request_id }:UNAUTHORIZED,INSUFFICIENT_SCOPE,NOT_FOUND,REFUSED(with the reason),RATE_LIMITED. - Results are your workspace's: your entitled market, your private checks and uploads, your lead statuses and notes.