Website visitors
Track your sites, see who visits (known contacts and companies), their journeys and intent, and push them into the CRM.
Add a site, put its snippet in the <head> of every page — <script src="https://meetzy.me/tracker.js" data-meetzy-id="{tracking_id}" data-meetzy-api="https://meetzy.me"></script> — and Meetzy records visits, pages, sources, forms and carts. Visitors who leave their email (a form, a link from a Meetzy email) become identified; a known contact’s visit fires contact.website_visit.
/website/sitesList tracked sites
Sites with their tracking_id, settings and when the last event arrived (to check the snippet works).
curl "https://meetzy.me/api/v1/website/sites" \ -H "Authorization: Bearer $MEETZY_API_KEY"
const res = await fetch("https://meetzy.me/api/v1/website/sites", {
headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}` },
});
const data = await res.json();import os, requests
res = requests.get(
"https://meetzy.me/api/v1/website/sites",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
)
data = res.json(){
"sites": []
}/website/sitesAdd a site
Returns the site with its tracking_id for the snippet.
Body
domainstringrequired- Domain, e.g.
acme.com.
curl -X POST "https://meetzy.me/api/v1/website/sites" \ -H "Authorization: Bearer $MEETZY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "domain": "acme.com" }'
const res = await fetch("https://meetzy.me/api/v1/website/sites", { method: "POST", headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "domain": "acme.com" }), }); const data = await res.json();
import os, requests
res = requests.post(
"https://meetzy.me/api/v1/website/sites",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
json={
"domain": "acme.com"
},
)
data = res.json(){
"id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"from": "acme",
"tracking_id": "meetzy_1791378962186_k3j9x2m1q",
"domain": "acme.com",
"is_active": true,
"settings": {
"track_page_views": true,
"track_forms": true,
"track_clicks": true
}
}/website/overviewTraffic overview
Visitors, sessions, page views, identified visitors, top pages, sources and campaigns, devices and countries, a daily series, and the hottest visitors.
Query parameters
tracking_idstring- One site (default: all).
daysinteger- Window in days. Default 30.
curl "https://meetzy.me/api/v1/website/overview?days=7" \ -H "Authorization: Bearer $MEETZY_API_KEY"
const res = await fetch("https://meetzy.me/api/v1/website/overview?days=7", {
headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}` },
});
const data = await res.json();import os, requests
res = requests.get(
"https://meetzy.me/api/v1/website/overview?days=7",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
)
data = res.json(){
"sites": [],
"empty": true
}/website/visitorsList visitors
Most recent first, each with crm_contact_id when the person is already in the CRM.
Query parameters
tracking_idstring- One site.
qstring- Search in email, name and company.
identifiedstringtrue(default): only visitors with an email;false: everyone.limitinteger- Up to 500. Default 200.
offsetinteger- Rows to skip.
curl "https://meetzy.me/api/v1/website/visitors?q=payfit" \ -H "Authorization: Bearer $MEETZY_API_KEY"
const res = await fetch("https://meetzy.me/api/v1/website/visitors?q=payfit", {
headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}` },
});
const data = await res.json();import os, requests
res = requests.get(
"https://meetzy.me/api/v1/website/visitors?q=payfit",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
)
data = res.json(){
"visitors": [
{
"id": "d4c3b2a1-0f9e-4d8c-b7a6-5e4d3c2b1a09",
"tracking_id": "meetzy_1791378962186_k3j9x2m1q",
"visitor_id": "v_8f2k1",
"email": "camille@payfit.com",
"name": "Camille Laurent",
"company": "Payfit",
"country": "France",
"city": "Paris",
"visit_count": 6,
"page_views": 23,
"lead_score": 72,
"first_seen_at": "2026-09-28T08:14:00Z",
"last_seen_at": "2026-10-07T09:41:00Z",
"crm_contact_id": "e43414d6-f56f-42be-a64c-a836d6015efc"
}
],
"total": 1
}/website/visitors/{id}A visitor’s journey
The visitor, their last 300 events (page views, clicks, forms, carts — with page, referrer and data) and their sessions (duration, pages, entry page, UTM source / medium / campaign).
Path parameters
idstringrequired- Id of the record (UUID).
curl "https://meetzy.me/api/v1/website/visitors/e43414d6-f56f-42be-a64c-a836d6015efc" \ -H "Authorization: Bearer $MEETZY_API_KEY"
const res = await fetch("https://meetzy.me/api/v1/website/visitors/e43414d6-f56f-42be-a64c-a836d6015efc", {
headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}` },
});
const data = await res.json();import os, requests
res = requests.get(
"https://meetzy.me/api/v1/website/visitors/e43414d6-f56f-42be-a64c-a836d6015efc",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
)
data = res.json(){
"visitor": {
"id": "d4c3b2a1-0f9e-4d8c-b7a6-5e4d3c2b1a09",
"email": "camille@payfit.com",
"name": "Camille Laurent",
"company": "Payfit",
"visit_count": 6,
"page_views": 23,
"lead_score": 72
},
"events": [
{
"event_type": "page_view",
"event_name": null,
"page_url": "https://acme.com/pricing",
"page_title": "Pricing — Acme",
"referrer": "https://www.google.com/",
"created_at": "2026-10-07T09:41:00Z",
"data": {},
"cart_value": null
}
],
"sessions": [
{
"session_id": "s_91kd",
"started_at": "2026-10-07T09:38:00Z",
"duration": 412,
"page_count": 5,
"entry_page": "https://acme.com/",
"referrer": "https://www.google.com/",
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "brand"
}
]
}/website/push-to-crmAdd visitors to the CRM
Creates (or updates) a contact for each identified visitor, tagged website, with their visit counts and score.
Body
visitor_idsuuid[]required- Visitors (up to 500).
curl -X POST "https://meetzy.me/api/v1/website/push-to-crm" \ -H "Authorization: Bearer $MEETZY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "visitor_ids": [ "d4c3b2a1-0f9e-4d8c-b7a6-5e4d3c2b1a09" ] }'
const res = await fetch("https://meetzy.me/api/v1/website/push-to-crm", { method: "POST", headers: { Authorization: `Bearer ${process.env.MEETZY_API_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "visitor_ids": [ "d4c3b2a1-0f9e-4d8c-b7a6-5e4d3c2b1a09" ] }), }); const data = await res.json();
import os, requests
res = requests.post(
"https://meetzy.me/api/v1/website/push-to-crm",
headers={"Authorization": f"Bearer {os.environ['MEETZY_API_KEY']}"},
json={
"visitor_ids": ["d4c3b2a1-0f9e-4d8c-b7a6-5e4d3c2b1a09"]
},
)
data = res.json(){
"created": 0,
"updated": 1,
"skipped": 0,
"contact_ids": [
"e43414d6-f56f-42be-a64c-a836d6015efc"
]
}