Which AI Sent API
Read your website’s AI visits, leads and sales from your own tools: Looker Studio, Google Sheets, a client report or your own dashboard. The API is read-only and included in the Pro and Agency plans.
1. Create an API key
In your dashboard, open Settings → API keys, give the key a name and click Create API key. Copy it straight away: it’s shown once. Each key reads one website. Revoke a key in the same place and it stops working immediately.
Keep keys secret: anyone with a key can read that website’s leads. Use them from a server or a private tool, never in a public web page.
2. Make a request
Send the key in the Authorization header:
curl https://whichaisent.com/api/v1/report?month=2026-09 \
-H "Authorization: Bearer was_YOUR_KEY"
All responses are JSON. Limit: 120 requests per minute.
Endpoints
| Endpoint | Returns |
|---|---|
GET /api/v1/website | The website this key reads: name, addresses, how it’s connected, whether tracking is on, and the plan. |
GET /api/v1/report?month=YYYY-MM | The monthly report shown on your Overview: visits by source (including each AI assistant), AI share of organic traffic, leads and revenue from AI, broken down by assistant and by evidence level (Confirmed, Declared, Assisted), plus the rolling 90 days. |
GET /api/v1/leads?month=YYYY-MM | The leads for that month, newest first (up to 1,000), each with its source, evidence level, status, booked value and revenue. Use range=30, 90, 365 or all instead of month for a rolling window. |
month defaults to the current month. Leads marked as spam are left out.
Errors
| Status | Meaning |
|---|---|
| 401 | Missing, invalid or revoked key |
| 402 | The website’s plan doesn’t include API access (Pro and above) |
| 400 | A parameter is wrong, for example month not in YYYY-MM form |
| 429 | Too many requests: wait a minute |
Examples
Google Sheets (Apps Script):
function aiLeads() {
var r = UrlFetchApp.fetch('https://whichaisent.com/api/v1/leads?range=30', {
headers: { Authorization: 'Bearer ' + PropertiesService.getScriptProperties().getProperty('WAS_KEY') }
});
return JSON.parse(r.getContentText()).leads;
}
JavaScript (server-side):
const res = await fetch('https://whichaisent.com/api/v1/report?month=2026-09', {
headers: { Authorization: `Bearer ${process.env.WAS_KEY}` },
});
const report = await res.json();
Sending leads in
This API reads data. To push new leads to your CRM as they arrive, use Integrations in your dashboard (webhooks, Zapier, Make, HubSpot, GoHighLevel).
Questions
Email info@whichaisent.com.