Connect your tools to AssetBridge in minutes
A simple REST API with JSON responses. Create a key, add one header, and pull leads, cases and imports into your CRM, spreadsheet, Zapier or your own code.
# 1. Who am I? curl https://assetbridgegroup.org/api/me \ -H "Authorization: Bearer ab_live_YOUR_KEY" # → {"email": "you@company.com", "role": "analyst", "auth": "api_key"}
Create a key
Sign in, open Settings → API keys and click Create. Copy the key (it's shown once).
Add one header
Send Authorization: Bearer <key> (or X-API-Key: <key>) with every request. No cookies or CSRF tokens needed.
Call an endpoint
Responses are JSON. The key acts as you, with your role. Revoke it anytime from Settings.
Endpoints
| Method | Path | What it does | Role |
|---|---|---|---|
| GET | /api/me | The user the key belongs to | any |
| GET | /api/dashboard | Pipeline totals, upcoming deadlines, recent imports | any |
| GET | /api/opportunities | Search cases. Filters: q, state, county, asset_type, status, tier, sort, page, page_size | any |
| GET | /api/opportunities/{id} | One case, including the original source row | any |
| GET | /api/inquiries | Website leads, newest first. Use since_id to fetch only new ones | analyst |
| GET | /api/imports | Import batches and their results | any |
| POST | /api/imports | Upload a CSV / Excel file (multipart field: file) | analyst |
| POST | /api/imports/{id}/commit | Commit an upload. Optional JSON: mapping, default_state, default_county, source_url | analyst |
| GET | /api/sources | Registered public data sources | any |
import requests
API = "https://assetbridgegroup.org/api"
H = {"Authorization": "Bearer ab_live_YOUR_KEY"}
leads = requests.get(f"{API}/inquiries", headers=H,
params={"since_id": 0}).json()["items"]
for lead in leads:
print(lead["id"], lead["full_name"], lead["email"])
const res = await fetch(
"https://assetbridgegroup.org/api/opportunities?tier=high&state=CA",
{ headers: { Authorization: "Bearer ab_live_YOUR_KEY" } }
);
const { total, items } = await res.json();
console.log(total, items[0]?.owner_name);
curl -X POST https://assetbridgegroup.org/api/imports \
-H "Authorization: Bearer ab_live_YOUR_KEY" \
-F file=@county_surplus.csv
# → {"id": 12, "proposed_mapping": {...}}
curl -X POST https://assetbridgegroup.org/api/imports/12/commit \
-H "Authorization: Bearer ab_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"default_state": "FL"}'
1. Add a "Webhooks / HTTP request" step
2. Method: GET
3. URL: https://assetbridgegroup.org/api/inquiries?since_id={{last_id}}
4. Header: Authorization = Bearer ab_live_YOUR_KEY
5. Send each item to your CRM, Sheets or Slack
Errors
401 = missing, invalid or revoked key. 403 = your role can't do that. 404 = not found. 400 = bad input (the message says why).
Security
Keys are stored only as a one-way hash. Keep them server-side, never in browser code. Revoke and re-create a key if it leaks. Every key action is in the audit log.
Limits & plans
Up to 10 active keys per user. API access is included with Professional and Enterprise plans. Need more? Email support@assetbridgegroup.org.