Tarifflo
  • Pricing
  • Refunds
  • IEEPA Refunds
Sign In
Developer docs
GuidesAPI reference
Guides
v2Currentv1Deprecated
  • Classifications
  • Tariff rates
API v1 is deprecated. It keeps working for the integrations already on it, and nothing new lands here. Every endpoint, including classification and tariff rates, is on v2. See the v2 reference.

API v1 · deprecated

REST API v1

Every endpoint lives under https://api.tarifflo.com/api/v1, takes JSON and authenticates with X-API-Key. Long-running work answers 202 with a jobId and delivers the result to your webhook.

ClassificationsTariff rates

Classifications

Classify one product to an HTS code for each destination. The US code is computed first, then mapped to the other destinations.

POST/api/v1/classificationsscope: classifications

Body

FieldTypeDescription
description
required
stringProduct description, 10 to 2000 characters.
destinations
required
string[]1 to 10 destination countries, 2-letter ISO codes.
name
optional
stringProduct name, 3 to 200 characters.
partialHtsCode
optional
stringA known 4- or 6-digit prefix that constrains the result.
webhookUrl
optional
stringPublic HTTPS URL that receives the signed result. Omit it to poll the GET endpoint instead.
Request
BASH
curl -X POST "https://api.tarifflo.com/api/v1/classifications" \
  -H "X-API-Key: $TARIFFLO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Wireless over-ear headphones, plastic housing",
    "destinations": ["US", "CA"],
    "webhookUrl": "https://your-server.com/webhooks/tarifflo"
  }'
202 Accepted
JSON
{
  "jobId": "0193c1f2-...",
  "status": "queued",
  "destinationsQueued": 2,
  "totalClassifications": 2,
  "estimatedCompletionTime": 90,
  "message": "Classification job queued. ..."
}
GET/api/v1/classifications/{jobId}scope: classifications

Returns status queued, processing, complete (with data) or needs_info (with questions). To answer questions, add the answers to the description and classify again.

Tariff rates

Rate up to 50 lines. Each line returns the effective ad valorem rate with Chapter 99 stacking (Section 301, 232, IEEPA) and a cost breakdown, priced as of its date. Unknown field names are rejected, so a typo fails instead of returning a wrong rate.

POST/api/v1/tariff-ratesscope: tariff_rates

Body

FieldTypeDescription
rates
required
object[]1 to 50 lines, described below.
webhookUrl
optional
stringReceives tariff_rate.completed. Defaults to your endpoint for the key's environment; with neither, poll GET /{jobId}.
effectiveDate
optional
stringDefault date for every line, YYYY-MM-DD. Defaults to today.
loadingDate
optional
stringLoading date for time-based provisions, YYYY-MM-DD.
modeOfTransport
optional
stringocean, air, truck or rail.

rates[] item

FieldTypeDescription
htsCode
required
stringHTS code, dots optional.
origin
required
stringCountry of origin, 2-letter ISO code.
destination
required
stringDestination country, 2-letter ISO code.
value
optional
numberLine value in USD.
date
optional
stringThis line's date, YYYY-MM-DD.
metals
optional
objectSection 232 content shares: { steel?, aluminum?, copper? }, 0 to 100.
usContentPercentage
optional
numberUS-origin content share, 0 to 100.
steelCountryOfMelt
optional
stringMelt-and-pour country, 2-letter ISO code.
aluminumCountryOfSmelt
optional
stringSmelt-and-cast country, 2-letter ISO code.
uomQuantities
optional
objectQuantity per unit of measure, for specific duties.
appliedExclusions
optional
string[]Chapter 99 exclusion codes to apply.
chosenSpiCodes
optional
string[]Special program indicators to evaluate.
setKind
optional
stringFor a set provision: how the set is rated.
components
optional
object[]For a set provision: up to 50 components { code, description?, valueShare?, quantity? }.
Request
BASH
curl -X POST "https://api.tarifflo.com/api/v1/tariff-rates" \
  -H "X-API-Key: $TARIFFLO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "webhookUrl": "https://your-server.com/webhooks/tarifflo",
    "modeOfTransport": "ocean",
    "rates": [
      { "htsCode": "7318.15.8060", "origin": "CN", "destination": "US", "value": 25000, "metals": { "steel": 100 } }
    ]
  }'
GET/api/v1/tariff-rates/{jobId}scope: tariff_rates

Progress while running; once complete, data holds one result per line, the same object the webhook carries.

Tarifflo

AI-driven trade automation for modern importers and brokers.

Get started free

Platform

  • Audit
  • ABI Filing
  • PGA
  • Suppliers

Customs

  • HTS Classification
  • Schedule B
  • ECCN
  • Tariff Rates
  • Customs Clearance

Developers

  • Docs
  • API reference
  • Webhooks
  • MCP Connector

Product

  • Pricing
  • Refunds
  • IEEPA Refunds
  • Explore data

Company

  • FAQ
  • Contact Us
  • Book a Demo
  • Featured on SOTA2

© 2026 Tarifflo, Inc. All rights reserved.

Privacy PolicyTerms & Conditions