Developers

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

EndpointReturns
GET /api/v1/websiteThe website this key reads: name, addresses, how it’s connected, whether tracking is on, and the plan.
GET /api/v1/report?month=YYYY-MMThe 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-MMThe 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

StatusMeaning
401Missing, invalid or revoked key
402The website’s plan doesn’t include API access (Pro and above)
400A parameter is wrong, for example month not in YYYY-MM form
429Too 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.