Skip to main content

TraceEntry API Documentation

Integrate AI-powered transaction categorization into your accounting applications. Process single transactions or batches with consistent, accurate results.

API Coming Soon

The TraceEntry REST API is currently in development. Join the waitlist to get early access and help shape the API.

Join API Waitlist

Base URL

https://api.traceentry.com/v1

Use Cases

  • Excel Add-ins: Categorize transactions directly in spreadsheets
  • Accounting Software: Automate categorization in QuickBooks, Xero integrations
  • Bank Feeds: Real-time categorization of incoming transactions
  • Batch Processing: Bulk categorization for large transaction files

Authentication

All API requests require authentication using an API key. Include your key in the X-API-Key header.

Request Header
X-API-Key: te_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Security: Never expose your API key in client-side code. Always make API calls from your server.

Rate Limits

Rate limits ensure fair usage across all users. Limits are applied per API key.

Endpoint Rate Limit Burst
/v1/categorize 100 requests/minute 20 requests
/v1/categorize/batch 10 requests/minute 5 requests

Rate limit headers are included in all responses: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

Single Transaction Endpoint

Categorize a single transaction. Ideal for Excel add-ins, Google Sheets, and real-time categorization.

POST /v1/categorize

Request Body

JSON
{
  "description": "CHEVRON #12345 BOISE ID",
  "amount": -45.67,
  "date": "2024-11-15",
  "industry": "general"
}

Response

JSON
{
  "vendor": "Chevron",
  "category": "Fuel",
  "business_classification": "Clearly Business",
  "deductibility": "Fully Deductible",
  "confidence": 0.97
}

Parameters

Field Type Required Description
description string Yes Transaction description from bank statement
amount number No Transaction amount (negative for debits)
date string No Transaction date (YYYY-MM-DD)
industry string No Industry template (default: "general")

Pricing

$0.02 per request

Batch Transactions Endpoint

Categorize multiple transactions in a single request. Most cost-effective for bulk processing as billing is per unique vendor, not per transaction.

POST /v1/categorize/batch

Request Body

JSON
{
  "transactions": [
    {"id": "1", "description": "CHEVRON #12345", "amount": -45.67, "date": "2024-11-15"},
    {"id": "2", "description": "DUTCH BROS", "amount": -6.50, "date": "2024-11-15"},
    {"id": "3", "description": "CHEVRON #999", "amount": -52.00, "date": "2024-11-14"}
  ],
  "industry": "general"
}

Response

JSON
{
  "results": [
    {"id": "1", "vendor": "Chevron", "category": "Fuel", "confidence": 0.97},
    {"id": "2", "vendor": "Dutch Bros", "category": "Meals & Entertainment", "confidence": 0.94},
    {"id": "3", "vendor": "Chevron", "category": "Fuel", "confidence": 0.97}
  ],
  "summary": {
    "processed": 3,
    "unique_vendors": 2,
    "ai_calls_made": 2
  },
  "billing": {
    "unit": "unique_vendors",
    "count": 2,
    "rate_cents": 2,
    "total_cents": 4
  }
}

Pricing

$0.02 per unique vendor (not per transaction)

Example: 1,000 transactions with 50 unique vendors = $1.00

Limits

  • • Maximum 100,000 transactions per request
  • • Request timeout: 5 minutes
  • • Async processing available for large batches

Categories Reference

Standard expense categories returned by the API. Industry templates may include additional categories.

Fuel
Meals & Entertainment
Office Supplies
Software / Subscriptions
Utilities
Insurance
Banking / Fees
Payroll / Contractors
Rent / Facilities
Equipment / Assets
Travel / Transportation
Professional Services
Advertising / Marketing
Personal / Non-Business
Unknown / Needs Review

Industry Templates

Supported industry templates for optimized categorization accuracy.

Value Description
general Default template for most businesses
moving_company Moving and transportation services
construction Construction and contracting
restaurant Restaurant and food service
professional_services Consulting, legal, accounting
retail Retail stores
ecommerce Online stores and marketplaces

Error Codes

Standard HTTP status codes with detailed error messages.

Code Description
200 Success
400 Bad Request - Invalid parameters
401 Unauthorized - Invalid or missing API key
402 Payment Required - Insufficient balance
429 Too Many Requests - Rate limit exceeded
500 Internal Server Error

Error Response Format

JSON
{
  "error": {
    "code": "invalid_parameter",
    "message": "The 'description' field is required",
    "param": "description"
  }
}