API Examples
Complete code examples for using the Netasampark API.
Authentication
JavaScript/TypeScript
// Login
async function login(email: string, password: string) {
const response = await fetch('https://api.netasampark.com/api/auth/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ email, password }),
});
const data = await response.json();
if (data.success) {
localStorage.setItem('token', data.data.access_token);
return data.data;
}
throw new Error(data.message);
}
// Authenticated Request
async function getVoters(token: string) {
const response = await fetch('https://api.netasampark.com/api/voters', {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
});
return response.json();
}
PHP
// Login
function login($email, $password) {
$client = new \GuzzleHttp\Client();
$response = $client->post('https://api.netasampark.com/api/auth/login', [
'json' => [
'email' => $email,
'password' => $password,
],
]);
$data = json_decode($response->getBody(), true);
if ($data['success']) {
return $data['data'];
}
throw new Exception($data['message']);
}
// Authenticated Request
function getVoters($token) {
$client = new \GuzzleHttp\Client();
$response = $client->get('https://api.netasampark.com/api/voters', [
'headers' => [
'Authorization' => "Bearer {$token}",
],
]);
return json_decode($response->getBody(), true);
}
Python
import requests
# Login
def login(email, password):
response = requests.post(
'https://api.netasampark.com/api/auth/login',
json={'email': email, 'password': password}
)
data = response.json()
if data['success']:
return data['data']
raise Exception(data['message'])
# Authenticated Request
def get_voters(token):
headers = {'Authorization': f'Bearer {token}'}
response = requests.get(
'https://api.netasampark.com/api/voters',
headers=headers
)
return response.json()
Sending Messages
WhatsApp Message
async function sendWhatsAppMessage(token, phone, message) {
const response = await fetch('https://api.netasampark.com/api/messages/send', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
channel: 'whatsapp',
to: phone,
message: message,
}),
});
return response.json();
}
SMS Message
async function sendSMS(token, phone, message) {
const response = await fetch('https://api.netasampark.com/api/messages/send', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
channel: 'sms',
to: phone,
message: message,
}),
});
return response.json();
}
Email Message
async function sendEmail(token, email, subject, body) {
const response = await fetch('https://api.netasampark.com/api/messages/send', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
channel: 'email',
to: email,
subject: subject,
body: body,
}),
});
return response.json();
}
Voter Management
List Voters
async function listVoters(token, page = 1, perPage = 15) {
const response = await fetch(
`https://api.netasampark.com/api/voters?page=${page}&per_page=${perPage}`,
{
headers: {
'Authorization': `Bearer ${token}`,
},
}
);
return response.json();
}
Create Voter
async function createVoter(token, voterData) {
const response = await fetch('https://api.netasampark.com/api/voters', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(voterData),
});
return response.json();
}
Update Voter
async function updateVoter(token, voterId, voterData) {
const response = await fetch(`https://api.netasampark.com/api/voters/${voterId}`, {
method: 'PUT',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(voterData),
});
return response.json();
}
Campaigns
Create Campaign
async function createCampaign(token, campaignData) {
const response = await fetch('https://api.netasampark.com/api/campaigns', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(campaignData),
});
return response.json();
}
Error Handling
Complete Example with Error Handling
class NetasamparkAPI {
constructor(baseURL, token) {
this.baseURL = baseURL;
this.token = token;
}
async request(endpoint, options = {}) {
const url = `${this.baseURL}${endpoint}`;
const config = {
...options,
headers: {
'Authorization': `Bearer ${this.token}`,
'Content-Type': 'application/json',
...options.headers,
},
};
try {
const response = await fetch(url, config);
const data = await response.json();
if (!data.success) {
this.handleError(data);
throw new Error(data.message);
}
return data.data;
} catch (error) {
console.error('API Error:', error);
throw error;
}
}
handleError(error) {
switch (error.error_code) {
case 'validation_error':
console.error('Validation errors:', error.details);
break;
case 'unauthorized':
// Redirect to login
window.location.href = '/login';
break;
case 'rate_limit_exceeded':
console.warn('Rate limit exceeded. Retry after:', error.retry_after);
break;
default:
console.error('API Error:', error.message);
}
}
// Convenience methods
async getVoters(page = 1) {
return this.request(`/api/voters?page=${page}`);
}
async sendMessage(channel, to, message) {
return this.request('/api/messages/send', {
method: 'POST',
body: JSON.stringify({ channel, to, message }),
});
}
}
// Usage
const api = new NetasamparkAPI('https://api.netasampark.com', 'your-token');
const voters = await api.getVoters(1);
Next Steps
Need help? Contact Support