Quickstart
You’ll need an API key. Create one in the dashboard, then keep this page open.
1. Verify your key
Section titled “1. Verify your key”curl https://api.pathbound.ai/v1/auth/status \ -H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://api.pathbound.ai/v1/auth/status', { headers: { Authorization: `Bearer ${process.env.PATHBOUND_API_KEY}` },});console.log(await res.json());import os, requests
res = requests.get( 'https://api.pathbound.ai/v1/auth/status', headers={'Authorization': f"Bearer {os.environ['PATHBOUND_API_KEY']}"},)print(res.json())You should see your user_id, email, and tenant_id.
2. Create a contact
Section titled “2. Create a contact”curl -X POST https://api.pathbound.ai/v1/contacts \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "email": "[email protected]", "properties": { "firstname": "Ada", "lastname": "Lovelace", "company": "Analytical Engines", "lifecyclestage": "lead" } }'const res = await fetch('https://api.pathbound.ai/v1/contacts', { method: 'POST', headers: { Authorization: `Bearer ${process.env.PATHBOUND_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ properties: { firstname: 'Ada', lastname: 'Lovelace', company: 'Analytical Engines', lifecyclestage: 'lead', }, }),});const { contact } = await res.json();console.log(contact._id);res = requests.post( 'https://api.pathbound.ai/v1/contacts', headers={ 'Authorization': f"Bearer {os.environ['PATHBOUND_API_KEY']}", 'Content-Type': 'application/json', }, json={ 'properties': { 'firstname': 'Ada', 'lastname': 'Lovelace', 'company': 'Analytical Engines', 'lifecyclestage': 'lead', }, },)print(res.json()['contact']['_id'])Save the returned contact._id — you’ll need it to attach events, notes, and actions.
Required scope: contacts:write.
3. List recent events
Section titled “3. List recent events”If you’ve installed the tracker on your site, you’ll already have events flowing. Otherwise this returns an empty array.
curl "https://api.pathbound.ai/v1/events?limit=5&sort_dir=desc" \ -H "Authorization: Bearer YOUR_API_KEY"const url = new URL('https://api.pathbound.ai/v1/events');url.searchParams.set('limit', '5');url.searchParams.set('sort_dir', 'desc');
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.PATHBOUND_API_KEY}` },});const { events } = await res.json();console.log(events);res = requests.get( 'https://api.pathbound.ai/v1/events', headers={'Authorization': f"Bearer {os.environ['PATHBOUND_API_KEY']}"}, params={'limit': 5, 'sort_dir': 'desc'},)for e in res.json()['events']: print(e['event'], e.get('url'))Required scope: events:read.
4. Queue an outreach action
Section titled “4. Queue an outreach action”Actions represent unit-of-work outreach (emails, LinkedIn, notes). The example below queues an email for human approval.
curl -X POST https://api.pathbound.ai/v1/actions \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "email_message", "params": { "contact_id": "ct_abc", "subject": "Following up", "message": "Hi Ada — saw you were back on the pricing page yesterday. Worth a quick call?" }, "identity_id": "id_123", "require_approval": true }'The action enters pending_approval until someone (a human or a key with actions:write) approves it. See Actions.
What’s next
Section titled “What’s next”- Browse the full REST API reference.
- Drop in the tracker snippet to start capturing visitor behavior.
- Connect Pathbound to Claude.ai via the MCP server.
- Build an agent that watches a segment and proposes actions on its own.