API Reference
Complete reference for all Settler API endpoints. All endpoints require authentication via API key.
🔑 Authentication: Include your API key in the Authorization header:Authorization: Bearer sk_live_...
Base URL
All API requests should be made to:
https://api.settler.devEndpoints
POST
/api/v1/jobs
Create a new reconciliation job
const job = await client.jobs.create({
name: "Shopify-Stripe Reconciliation",
source: {
adapter: "shopify",
config: { apiKey: "..." }
},
target: {
adapter: "stripe",
config: { apiKey: "..." }
},
rules: {
matching: [
{ field: "order_id", type: "exact" },
{ field: "amount", type: "exact", tolerance: 0.01 }
]
}
});GET
/api/v1/jobs/:id
Get reconciliation job details
const job = await client.jobs.get(jobId);
console.log(job.status); // 'pending' | 'running' | 'completed' | 'failed'POST
/api/v1/jobs/:id/run
Run a reconciliation job
const report = await client.jobs.run(jobId);
console.log(report.summary);POST
/api/v1/receipts/parse
Parse a receipt image or PDF
const receipt = await client.receipts.parse({
file: "https://example.com/receipt.jpg",
});
console.log(receipt.total, receipt.merchant);GET
/api/v1/reports/:jobId
Get reconciliation report
const report = await client.reports.get(jobId);
console.log(report.summary);
// {
// total: 150,
// matched: 145,
// unmatched: 3,
// conflicts: 2,
// accuracy: 0.987
// }Response Format
All successful responses follow this format:
{
"data": {
// Response data
},
"meta": {
"requestId": "req_123",
"timestamp": "2025-12-18T12:00:00Z"
}
}Error Format
Errors follow this format:
{
"error": {
"message": "Error description",
"code": "ERROR_CODE",
"status": 400
}
}Rate Limits
See Status & Limits for current rate limits.