Get up and running in 5 minutes
Secure your API requests
Explore all available endpoints
Real-time event notifications
Your first API request in minutes
Navigate to Settings → API Keys in your dashboard. Only available on Professional Plus and Enterprise plans.
Professional Plus: 1,000 requests/hour
Enterprise: Unlimited requests/hour
curl https://api.parttracker.com/api/v1/parts \
-H "Authorization: Bearer api_live_xxxxxxxxxxxxxxxxxxxxxxx"
# Response
{
"success": true,
"data": [...],
"pagination": { ... }
}All API responses follow a consistent format with success, data, and optional pagination or error fields.
Secure your API requests with API keys
Include your API key in the Authorization header of every request:
Authorization: Bearer api_live_xxxxxxxxxxxxxxxxxxxxxxxAPI requests are rate-limited based on your plan. Check response headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 987
X-RateLimit-Reset: 1698765432Complete API reference
/api/v1/partsList all parts with filtering and pagination
page(integer)- Page number (default: 1)limit(integer)- Items per page (default: 50)search(string)- Search by article number or namesupplier_id(string)- Filter by supplierlow_stock(boolean)- Show only low stock itemscurl https://api.parttracker.com/api/v1/parts?page=1&limit=10 \
-H "Authorization: Bearer api_live_xxx"/api/v1/parts/:idGet a specific part by ID
curl https://api.parttracker.com/api/v1/parts/part_123 \
-H "Authorization: Bearer api_live_xxx"/api/v1/partsCreate a new part
{
"article_number": "P-001",
"name": "Circuit Board",
"price": 50,
"stock_quantity": 100,
"minimum_stock": 10
}curl -X POST https://api.parttracker.com/api/v1/parts \
-H "Authorization: Bearer api_live_xxx" \
-H "Content-Type: application/json" \
-d '{"article_number":"P-001","name":"Circuit Board","price":50}'/api/v1/parts/:id/adjust-stockAdjust stock quantity (add or subtract)
{
"operation": "add",
"quantity": 50,
"reason": "Received new shipment"
}curl -X POST https://api.parttracker.com/api/v1/parts/part_123/adjust-stock \
-H "Authorization: Bearer api_live_xxx" \
-H "Content-Type: application/json" \
-d '{"operation":"add","quantity":50,"reason":"Restock"}'Real-time event notifications
Webhooks allow you to receive real-time notifications when events occur in your Part Tracker organization.
part.createdpart.updatedpart.deletedpart.stock_changedproduct.createdproduct.updatedproduct.stock_changedsupplier_order.createdsupplier_order.deliveredproduction_order.completedshopify_order.createdwoocommerce_order.createddistributor_order.shippedcurl -X POST https://api.parttracker.com/api/v1/webhooks \
-H "Authorization: Bearer api_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-server.com/webhook",
"events": ["part.created", "part.stock_changed"]
}'{
"event": "part.created",
"timestamp": "2025-10-21T14:30:00.000Z",
"organization_id": "org_123",
"data": {
"part": {
"id": "part_123",
"article_number": "P-001",
"name": "Circuit Board",
"stock_quantity": 100,
...
}
}
}All webhooks include a signature in the X-Webhook-Signature header. Verify it to ensure authenticity:
const crypto = require('crypto');
const WEBHOOK_SECRET = process.env.WEBHOOK_SECRET;
function verifyWebhook(payload, signature, secret) {
const hmac = crypto.createHmac('sha256', secret);
const digest = hmac.update(payload).digest('hex');
return digest === signature;
}
// Express example
app.post('/webhook', (req, res) => {
const signature = req.headers['x-webhook-signature'];
const payload = JSON.stringify(req.body);
if (!verifyWebhook(payload, signature, WEBHOOK_SECRET)) {
return res.status(401).send('Invalid signature');
}
// Process webhook...
res.status(200).send('OK');
});Understanding API error responses
The API uses conventional HTTP response codes to indicate success or failure:
200201400401403404429500// Error response format
{
"success": false,
"error": "Rate limit exceeded",
"message": "You have exceeded your rate limit of 1000 requests per hour",
"retryAfter": 3600
}Integration examples in different languages
// Using fetch
const apiKey = 'api_live_xxxxxxxxxxxxxxxxxxxxxxx';
async function getParts() {
const response = await fetch('https://api.parttracker.com/api/v1/parts', {
headers: {
'Authorization': 'Bearer ' + apiKey
}
});
const data = await response.json();
return data.data;
}
// Create a new part
async function createPart(partData) {
const response = await fetch('https://api.parttracker.com/api/v1/parts', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + apiKey,
'Content-Type': 'application/json'
},
body: JSON.stringify(partData)
});
return await response.json();
}We're here to support your integration
contact@parttracker.io
Enterprise customers: Get dedicated API support and higher rate limits.Upgrade to Enterprise →