Skip to main content

Meetings

Base URL https://api.leadx.in/api/key/protected. Every request needs an apikey header — see Authentication.

3 endpoints.

GET /meeting​

Get all meetings.

Auth apikey

:::note Used by the web app components/ScheduleMeetingModal.jsx, pages/AddMeeting.jsx, pages/Meeting.jsx :::

Query parameters — the standard list contract: p, n, sortBy, sortOrder, searchBy, searchValue, filters, advancedFilters, ids, nids. See Pagination and Filtering.

Response — data is an array of ScheduleMeeting objects, alongside the pagination fields described in Response format. updatedBy, createdBy, contact, host are populated, so they arrive as nested objects rather than ids.

cURL
curl -X GET 'https://api.leadx.in/api/key/protected/meeting?p=1&n=25' \
-H 'apikey: $LEADX_API_KEY'
fetch
// Node 18+ and every modern browser ship fetch.
const res = await fetch('https://api.leadx.in/api/key/protected/meeting?p=1&n=25', {
method: 'GET',
headers: {
apikey: process.env.LEADX_API_KEY,
},
});

const payload = await res.json();
if (!res.ok) {
// Errors carry { status, success, message } — not the success envelope.
throw new Error(`${res.status} ${payload.message}`);
}

console.log(payload.data);
axios
import axios from 'axios';

const leadx = axios.create({
baseURL: 'https://api.leadx.in/api/key/protected',
headers: { apikey: process.env.LEADX_API_KEY },
});

try {
const { data } = await leadx.get(
'/meeting?p=1&n=25'
);
console.log(data.data);
} catch (err) {
// axios throws on 4xx/5xx; the envelope is on err.response.data.
throw new Error(`${err.response?.status} ${err.response?.data?.message ?? err.message}`);
}
Node (no deps)
import { request } from 'node:https';

// The dependency-free version, for somewhere fetch is not available.
const send = (payload) =>
new Promise((resolve, reject) => {
const req = request(
'https://api.leadx.in/api/key/protected/meeting?p=1&n=25',
{
method: 'GET',
headers: {
apikey: process.env.LEADX_API_KEY,
},
},
(res) => {
let raw = '';
res.on('data', (chunk) => { raw += chunk; });
res.on('end', () => {
const body = JSON.parse(raw);
if (res.statusCode >= 400) reject(new Error(`${res.statusCode} ${body.message}`));
else resolve(body);
});
},
);
req.on('error', reject);

req.end();
});

const { data } = await send(null);
console.log(data);
Python
import os
import requests

res = requests.get(
"https://api.leadx.in/api/key/protected/meeting?p=1&n=25",
headers={"apikey": os.environ["LEADX_API_KEY"]},
timeout=30,
)

payload = res.json()
res.raise_for_status()
print(payload["data"])
PHP
<?php
$ch = curl_init('https://api.leadx.in/api/key/protected/meeting?p=1&n=25');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'apikey: ' . getenv('LEADX_API_KEY'),
],
]);

$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$payload = json_decode($response, true);
if ($status >= 400) {
throw new RuntimeException("$status {$payload['message']}");
}

print_r($payload['data']);

POST /meeting​

Create meeting.

Auth apikey · Success 200

:::note Used by the web app components/ScheduleMeetingModal.jsx, pages/AddMeeting.jsx, pages/Meeting.jsx :::

Request body

FieldTypeRequiredDefault
titlestringyes—
descriptionstring—
providerstringoffline
appObjectId—
location—
mapLink—
meetingLinkstring—
passcodestring—
timezonestring—
startTimedateyes—
endTimedate—
durationnumber—
hostObjectId -> Member—
contactObjectId -> Contact—
leadObjectId -> Lead—
attendeesobject[]—
remindersobject[]—
recurrence—

Response — data is one ScheduleMeeting object.

cURL
curl -X POST 'https://api.leadx.in/api/key/protected/meeting' \
-H 'apikey: $LEADX_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"title": "",
"description": "",
"provider": "offline",
"app": "",
"location": "",
"mapLink": "",
"meetingLink": "",
"passcode": "",
"timezone": "",
"startTime": "",
"endTime": "",
"duration": "",
"host": "",
"contact": "",
"lead": "",
"attendees": "",
"reminders": "",
"recurrence": ""
}'
fetch
// Node 18+ and every modern browser ship fetch.
const res = await fetch('https://api.leadx.in/api/key/protected/meeting', {
method: 'POST',
headers: {
apikey: process.env.LEADX_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"title": "",
"description": "",
"provider": "offline",
"app": "",
"location": "",
"mapLink": "",
"meetingLink": "",
"passcode": "",
"timezone": "",
"startTime": "",
"endTime": "",
"duration": "",
"host": "",
"contact": "",
"lead": "",
"attendees": "",
"reminders": "",
"recurrence": ""
}),
});

const payload = await res.json();
if (!res.ok) {
// Errors carry { status, success, message } — not the success envelope.
throw new Error(`${res.status} ${payload.message}`);
}

console.log(payload.data);
axios
import axios from 'axios';

const leadx = axios.create({
baseURL: 'https://api.leadx.in/api/key/protected',
headers: { apikey: process.env.LEADX_API_KEY },
});

try {
const { data } = await leadx.post(
'/meeting',
{
"title": "",
"description": "",
"provider": "offline",
"app": "",
"location": "",
"mapLink": "",
"meetingLink": "",
"passcode": "",
"timezone": "",
"startTime": "",
"endTime": "",
"duration": "",
"host": "",
"contact": "",
"lead": "",
"attendees": "",
"reminders": "",
"recurrence": ""
}
);
console.log(data.data);
} catch (err) {
// axios throws on 4xx/5xx; the envelope is on err.response.data.
throw new Error(`${err.response?.status} ${err.response?.data?.message ?? err.message}`);
}
Node (no deps)
import { request } from 'node:https';

// The dependency-free version, for somewhere fetch is not available.
const send = (payload) =>
new Promise((resolve, reject) => {
const req = request(
'https://api.leadx.in/api/key/protected/meeting',
{
method: 'POST',
headers: {
apikey: process.env.LEADX_API_KEY,
'Content-Type': 'application/json',
},
},
(res) => {
let raw = '';
res.on('data', (chunk) => { raw += chunk; });
res.on('end', () => {
const body = JSON.parse(raw);
if (res.statusCode >= 400) reject(new Error(`${res.statusCode} ${body.message}`));
else resolve(body);
});
},
);
req.on('error', reject);
req.write(JSON.stringify(payload));
req.end();
});

const { data } = await send({
"title": "",
"description": "",
"provider": "offline",
"app": "",
"location": "",
"mapLink": "",
"meetingLink": "",
"passcode": "",
"timezone": "",
"startTime": "",
"endTime": "",
"duration": "",
"host": "",
"contact": "",
"lead": "",
"attendees": "",
"reminders": "",
"recurrence": ""
});
console.log(data);
Python
import os
import requests

res = requests.post(
"https://api.leadx.in/api/key/protected/meeting",
headers={"apikey": os.environ["LEADX_API_KEY"]},
json={
"title": "",
"description": "",
"provider": "offline",
"app": "",
"location": "",
"mapLink": "",
"meetingLink": "",
"passcode": "",
"timezone": "",
"startTime": "",
"endTime": "",
"duration": "",
"host": "",
"contact": "",
"lead": "",
"attendees": "",
"reminders": "",
"recurrence": ""
},
timeout=30,
)

payload = res.json()
res.raise_for_status()
print(payload["data"])
PHP
<?php
$ch = curl_init('https://api.leadx.in/api/key/protected/meeting');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'apikey: ' . getenv('LEADX_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode({
'title': '',
'description': '',
'provider': 'offline',
'app': '',
'location': '',
'mapLink': '',
'meetingLink': '',
'passcode': '',
'timezone': '',
'startTime': '',
'endTime': '',
'duration': '',
'host': '',
'contact': '',
'lead': '',
'attendees': '',
'reminders': '',
'recurrence': ''
}),
]);

$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$payload = json_decode($response, true);
if ($status >= 400) {
throw new RuntimeException("$status {$payload['message']}");
}

print_r($payload['data']);

GET /meeting/:id​

Get meeting.

Auth apikey

:::note Used by the web app pages/AddMeeting.jsx :::

Path parameters

Name
idRequired

Response — data is one ScheduleMeeting object. lead, contact, host, app are populated, so they arrive as nested objects rather than ids.

cURL
curl -X GET 'https://api.leadx.in/api/key/protected/meeting/MEETING_ID' \
-H 'apikey: $LEADX_API_KEY'
fetch
// Node 18+ and every modern browser ship fetch.
const res = await fetch('https://api.leadx.in/api/key/protected/meeting/MEETING_ID', {
method: 'GET',
headers: {
apikey: process.env.LEADX_API_KEY,
},
});

const payload = await res.json();
if (!res.ok) {
// Errors carry { status, success, message } — not the success envelope.
throw new Error(`${res.status} ${payload.message}`);
}

console.log(payload.data);
axios
import axios from 'axios';

const leadx = axios.create({
baseURL: 'https://api.leadx.in/api/key/protected',
headers: { apikey: process.env.LEADX_API_KEY },
});

try {
const { data } = await leadx.get(
'/meeting/MEETING_ID'
);
console.log(data.data);
} catch (err) {
// axios throws on 4xx/5xx; the envelope is on err.response.data.
throw new Error(`${err.response?.status} ${err.response?.data?.message ?? err.message}`);
}
Node (no deps)
import { request } from 'node:https';

// The dependency-free version, for somewhere fetch is not available.
const send = (payload) =>
new Promise((resolve, reject) => {
const req = request(
'https://api.leadx.in/api/key/protected/meeting/MEETING_ID',
{
method: 'GET',
headers: {
apikey: process.env.LEADX_API_KEY,
},
},
(res) => {
let raw = '';
res.on('data', (chunk) => { raw += chunk; });
res.on('end', () => {
const body = JSON.parse(raw);
if (res.statusCode >= 400) reject(new Error(`${res.statusCode} ${body.message}`));
else resolve(body);
});
},
);
req.on('error', reject);

req.end();
});

const { data } = await send(null);
console.log(data);
Python
import os
import requests

res = requests.get(
"https://api.leadx.in/api/key/protected/meeting/MEETING_ID",
headers={"apikey": os.environ["LEADX_API_KEY"]},
timeout=30,
)

payload = res.json()
res.raise_for_status()
print(payload["data"])
PHP
<?php
$ch = curl_init('https://api.leadx.in/api/key/protected/meeting/MEETING_ID');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'apikey: ' . getenv('LEADX_API_KEY'),
],
]);

$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$payload = json_decode($response, true);
if ($status >= 400) {
throw new RuntimeException("$status {$payload['message']}");
}

print_r($payload['data']);