API v2 · 1.0.0
API reference
Every endpoint, generated from the OpenAPI 3.1.0 document. Paths are relative to https://api.tarifflo.com/api/v2. Requests and responses are JSON.
Authentication
Send your API key in the X-API-Key header on every request. A key belongs to one organization and carries scopes; each endpoint below lists the scope it needs. Test keys (tflo_test_) reach the CBP certification environment.
ApiKey: API key in the header X-API-KeyBearer: HTTP bearer — Atflo_API key as a bearer token.
Errors come back as { "error": { "code", "message" } } with a matching HTTP status; see Errors and Rate limits.
What is in the API
Endpoints are grouped by what they work on. Each group below is a section of this page.
- Sorting12
- Configuration5The pipeline configurations an upload can run on.
- Uploads16Create an upload, add files, start the run, then read its products, open questions and answers.
- Rate report1Build or fetch the duty-rate report for an upload.
- Entries27File entry summaries with CBP, read CBP's responses and manage versions.
- Audit4Pre-audit document runs: get upload URLs, start a run, poll for the result.
- Billing4Prices, credit balance and settled usage.
- Classification6Classify one product to each destination, or many products in a batch, and poll for the result.
- Export control3Export-control (ECCN) determinations for products.
- Jobs2
- Filing agent6
- Origin3Country-of-origin determinations for products.
- Tariff rates3Total landed duty for HTS lines at an origin, destination and date: base rate, Chapter 99, AD/CVD and fees.
- Organizations1
- CBP queries8Ask CBP directly: AD/CVD cases, manufacturer IDs, quota, currency, entry summaries, bonds.
- Census warnings1
- Parties7Your filers, importer profiles, manufacturers and other trade parties.
- TIB extensions1
- In-bonds1
- Cargo release1
- Shipments1
curl "https://api.tarifflo.com/api/v2/filers" \
-H "X-API-Key: $TARIFFLO_API_KEY"12 endpoints
Sorting
Open an upload's sort queue
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sortRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
Responses
200Successful response
application/json
Orientation, never inventory. Next: call next_unplaced_document.
sortSessionIdstringrequirednamestringrequiredgatedbooleanrequiredFalse: the upload is not parked at its sort gate, so nothing can be placed.
entryCountnumberrequiredentriesMissingCommercialInvoicenumberrequiredqueueobjectrequiredThe queue's dispositions.
6 fields
totalnumberrequiredremainingnumberrequiredStill undecided, handed-back documents included: the gate holds on these.
assignednumberrequiredskippednumberrequiredexcludednumberrequiredescalatednumberrequiredThe subset of
remaininghanded back to a person.
byStatusAndDocTypeobject[]requiredWhat is still to place, by why it gated and what the documents are.
3 fields per item
statusstringrequiredOne ofunmatchedambiguouscanonicalDocTypestring | nullrequiredcountnumberrequired
flagKindsobject[]requiredThe closed vocabulary of findings. Every decision needs one;
usesays when each applies.5 fields per item
kindstringrequiredtitlestringrequiredfixstringrequiredwherestringrequiredusestringrequired
flagsRecordednumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"sortSessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"gated": true,
"entryCount": 1,
"entriesMissingCommercialInvoice": 100,
"queue": {
"total": 1,
"remaining": 100,
"assigned": 100,
"skipped": 100,
"excluded": 100,
"escalated": 100
},
"byStatusAndDocType": [
{
"status": "unmatched",
"canonicalDocType": "string",
"count": 1
}
],
"flagKinds": [
{
"kind": "string",
"title": "string",
"fix": "string",
"where": "string",
"use": "string"
}
],
"flagsRecorded": 100
}Unplaced documents' cards
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/cardsRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
Request body
application/json
docIdstringRe-read this card.
cursornumberUndecided documents to skip — the
nextCursorof the previous page.limitnumberCards to return, 1-5. Default 1.
Responses
200Successful response
application/json
cardsobject[]requiredEmpty: the queue is drained (or the cursor is past it) — read sort_findings_report, then finish_sorting if nothing was handed back.
18 fields per item
docIdstringrequireddocumentIdstringrequiredcanonicalDocTypestring | nullrequiredpageRangesobject[]required2 fields per item
startnumberrequiredendnumberrequired
pageCountnumberrequiredtextCharsnumberrequiredmimeTypestringrequiredsharedCopybooleanrequiredqueueStatusstringrequiredOne ofunmatchedambiguousstageCandidatesobject[]requiredWhat the stage tied it to. Search an identifier off the card with search_documents to decide.
3 fields per item
entrySessionIdstringrequiredentryNumberstring | nullrequiredlabelstringrequired
missingEntryNumberstring | nullrequiredresolutionobject | nullrequired2 options
Any of
1.objectkindstringrequiredOne ofassignedskippedexcludedentrySessionIdsstring[]required
2.nullagentNoteobject | nullrequired2 options
Any of
1.objectkindstringrequiredOne of 13 values
doctype_misclassifiednon_filing_contentno_anchor_for_entry_numberextraction_gapneedle_gapneedle_too_genericocr_damagedeterministic_rule_candidatematcher_correct_but_gatedduplicate_not_dedupedshared_documentneeds_human_eyesunrenderable_sourcedetailstringrequiredevidencestring | nullrequired
2.nullidentifiersobject[]required2 fields per item
labelstringrequiredvaluestringrequired
needlesobject[]required2 fields per item
valuestringrequiredtierstringrequiredOne of 15 values
entry_numberbillcommercialpl_numberpopartmidhtstextvaluetotalsgoodsfuzzypacketpath
blockersstring[]requiredAny blocker means there is no path to a match: dispose of the document instead of searching.
headerSnippetstringrequiredremainingnumberrequired
nextCursornumber | nullrequiredPass as
cursorfor the next page; null on the last.remainingnumberrequiredUndecided documents in the queue.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/cards" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"cursor": 100,
"limit": 100
}'{
"cards": [
{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"documentId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"canonicalDocType": "string",
"pageRanges": [
{
"start": 100,
"end": 100
}
],
"pageCount": 0,
"textChars": 100,
"mimeType": "string",
"sharedCopy": true,
"queueStatus": "unmatched",
"stageCandidates": [
{
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": "string",
"label": "string"
}
],
"missingEntryNumber": "string",
"resolution": {
"kind": "assigned",
"entrySessionIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
]
},
"agentNote": {
"kind": "shared_document",
"detail": "string",
"evidence": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
},
"identifiers": [
{
"label": "string",
"value": "string"
}
],
"needles": [
{
"value": "string",
"tier": "entry_number"
}
],
"blockers": [
"no_needles"
],
"headerSnippet": "string",
"remaining": 100
}
],
"nextCursor": 100,
"remaining": 100
}Regex search over the documents placed in entries
https://api.tarifflo.com/api/v2/sort/searchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
sortSessionIdstringThe upload (sort session).
entrySessionIdstringSearch one entry instead of the whole upload (sortSessionId is then optional).
patternstringrequiredPostgres ARE regex, case-insensitive, with a ≥3-character literal run.
entrySessionIdsstring[]Scope to these entries — for adjudicating between candidates.
docTypestringOnly documents of this canonical doctype.
maxEntriesnumberEntries detailed. Default 8.
maxWindowsnumberText windows per entry, 1-3. Default 3.
forDocIdstringThe document you are placing, so the effort lands on it in the findings report.
Responses
200Successful response
application/json
patternstringrequirederrorstring | nullrequiredSet: the search did not run, and this says why.
entriesScannednumberrequiredentriesHitnumberrequiredEvery entry the pattern reached, not just the ones detailed. Many hits = a needle too generic to decide.
totalHitsnumberrequiredtruncatedbooleanrequiredMore entries hit than were detailed.
entriesobject[]required5 fields per item
entrySessionIdstringrequiredentryNumberstring | nullrequiredlabelstringrequiredhitCountnumberrequireddocsobject[]required5 fields per item
docIdstringrequiredcanonicalDocTypestring | nullrequiredisAnchorbooleanrequiredThe entry's own 7501: a hit here is far stronger than one in a satellite.
hitCountnumberrequiredwindowsstring[]requiredbefore «match» after, whitespace-collapsed.
notestring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort/search" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pattern": "string"
}'{
"pattern": "string",
"error": "string",
"entriesScanned": 100,
"entriesHit": 100,
"totalHits": 1,
"truncated": true,
"entries": [
{
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": "string",
"label": "string",
"hitCount": 1,
"docs": [
{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"canonicalDocType": "string",
"isAnchor": true,
"hitCount": 1,
"windows": [
"string"
]
}
]
}
],
"note": "string"
}One page range of a sort document
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/documents/{docId}/readRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
docIdstringrequiredA document the sort left for review.
Request body
application/json
fromPagenumber1-based page to start at — the previous range's
nextPage.forDocIdstringThe document you are placing, if different from the one being read.
Responses
200Successful response
application/json
docIdstringrequiredcanonicalDocTypestring | nullrequiredpageCountnumberrequiredpagesobject[]required4 fields per item
pagenumberrequiredtextstringrequiredscannedbooleanrequiredimageUnavailabletrueA scanned page with no stored image: read its OCR text.
imagesobject[]required2 fields per item
mimeTypestringrequireddatastringrequired
nextPagenumber | nullrequiredCall again with this as
fromPagefor the rest; null when this range reached the end.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/documents/01a19e37-837d-7c16-9a5d-3bef820fcff7/read" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fromPage": 0,
"forDocId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}'{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"canonicalDocType": "string",
"pageCount": 0,
"pages": [
{
"page": 0,
"text": "string",
"scanned": true,
"imageUnavailable": true
}
],
"images": [
{
"mimeType": "string",
"data": "string"
}
],
"nextPage": 0
}Decide unplaced documents
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/placementsRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
Request body
application/json
placementsobject[]requiredmin items 1max items 504 fields per item
docIdstringrequiredmin length 1decisionstringrequiredOne ofplaceskipexcludeentrySessionIdsstring[]Required for
place: every entry this document belongs to.default: []findingobjectrequiredWhy the deterministic pipeline could not place this.
start_sortingreturns the kinds and when each applies.6 fields
kindstringrequiredOne of 13 values
doctype_misclassifiednon_filing_contentno_anchor_for_entry_numberextraction_gapneedle_gapneedle_too_genericocr_damagedeterministic_rule_candidatematcher_correct_but_gatedduplicate_not_dedupedshared_documentneeds_human_eyesunrenderable_sourcedetailstringrequiredWhat you observed, specifically — the field, the number, the rule (20+ characters).
min length 1evidencestringThe text or identifier that PROVES it — a search window, a needle, a metadata value.
confidencestringOne ofhighmediumlowdocIdsstring[]Further documents this same finding covers.
default: []entrySessionIdsstring[]
Responses
200Successful response
application/json
outcomesobject | object[]requiredOne row per placement, in order.
2 options per item
Any of
1.objectdocIdstringrequireddispositionstringrequiredOne ofassignedskippedexcludedescalatedentrySessionIdsstring[]requiredflagobjectrequired9 fields
kindstringrequiredOne of 13 values
doctype_misclassifiednon_filing_contentno_anchor_for_entry_numberextraction_gapneedle_gapneedle_too_genericocr_damagedeterministic_rule_candidatematcher_correct_but_gatedduplicate_not_dedupedshared_documentneeds_human_eyesunrenderable_sourcedocIdsstring[]requiredentrySessionIdsstring[]detailstringrequiredevidencestringconfidencestringrequiredOne ofhighmediumlowdispositionstring | nulleffortobject2 fields
searchesnumberrequiredfullReadsnumberrequired
atstringrequired
2.objectdocIdstringrequirederrorstringrequiredWhy this placement was refused; the others still applied.
countsobjectrequiredUndecided beyond the handed-back ones: call next_unplaced_document. Otherwise read sort_findings_report, then finish_sorting.
6 fields
totalnumberrequiredremainingnumberrequiredStill undecided, handed-back documents included: the gate holds on these.
assignednumberrequiredskippednumberrequiredexcludednumberrequiredescalatednumberrequiredThe subset of
remaininghanded back to a person.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/placements" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"placements": [
{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"decision": "place",
"finding": {
"kind": "shared_document",
"detail": "string"
}
}
]
}'{
"outcomes": [
{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"disposition": "assigned",
"entrySessionIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
],
"flag": {
"kind": "shared_document",
"docIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
],
"entrySessionIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
],
"detail": "string",
"evidence": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"confidence": "high",
"disposition": "assigned",
"effort": {
"searches": 100,
"fullReads": 100
},
"at": "string"
}
}
],
"counts": {
"total": 1,
"remaining": 100,
"assigned": 100,
"skipped": 100,
"excluded": 100,
"escalated": 100
}
}Put a decided document back in the queue
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/documents/{docId}/reopenRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
docIdstringrequiredA document the sort left for review.
Responses
200Successful response
application/json
The queue's dispositions.
totalnumberrequiredremainingnumberrequiredStill undecided, handed-back documents included: the gate holds on these.
assignednumberrequiredskippednumberrequiredexcludednumberrequiredescalatednumberrequiredThe subset of
remaininghanded back to a person.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/documents/01a19e37-837d-7c16-9a5d-3bef820fcff7/reopen" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"total": 1,
"remaining": 100,
"assigned": 100,
"skipped": 100,
"excluded": 100,
"escalated": 100
}Wait on the upload's running rematch
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/rematchRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
Responses
200Successful response
application/json
The upload's rematch, waited on for up to ~90 s.
statusstringrequirednothing_unplaced: every document has a decision. no_rematch: none ran, call rematch_unplaced. disappeared: call rematch_unplaced again. running: call wait_for_sort to keep waiting. failed: see
error. done: seeplaced.One ofnothing_unplacedno_rematchdisappearedrunningfaileddonejobIdstringjobStatusstringerrorstringplacedobject[]What the matcher filed, with the needle and tier it used. Empty: every remaining document still needs a decision.
5 fields per item
docIdstringrequiredcanonicalDocTypestring | nullrequiredentrySessionIdsstring[]requiredneedlestringrequiredtierstringrequiredOne of 15 values
entry_numberbillcommercialpl_numberpopartmidhtstextvaluetotalsgoodsfuzzypacketpath
countsobject | null2 options
Any of
1.objectThe queue's dispositions.
totalnumberrequiredremainingnumberrequiredStill undecided, handed-back documents included: the gate holds on these.
assignednumberrequiredskippednumberrequiredexcludednumberrequiredescalatednumberrequiredThe subset of
remaininghanded back to a person.
2.nullstillUnplacedobject[]3 fields per item
docIdstringrequiredcanonicalDocTypestring | nullrequiredstatusstringrequiredOne ofunmatchedambiguous
stillUnplacedTotalnumber
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/rematch" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"status": "no_rematch",
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"jobStatus": "string",
"error": "string",
"placed": [
{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"canonicalDocType": "string",
"entrySessionIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
],
"needle": "string",
"tier": "entry_number"
}
],
"counts": {
"total": 1,
"remaining": 100,
"assigned": 100,
"skipped": 100,
"excluded": 100,
"escalated": 100
},
"stillUnplaced": [
{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"canonicalDocType": "string",
"status": "unmatched"
}
],
"stillUnplacedTotal": 1
}Re-run the matcher over the unplaced documents
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/rematchRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
Responses
200Successful response
application/json
The upload's rematch, waited on for up to ~90 s.
statusstringrequirednothing_unplaced: every document has a decision. no_rematch: none ran, call rematch_unplaced. disappeared: call rematch_unplaced again. running: call wait_for_sort to keep waiting. failed: see
error. done: seeplaced.One ofnothing_unplacedno_rematchdisappearedrunningfaileddonejobIdstringjobStatusstringerrorstringplacedobject[]What the matcher filed, with the needle and tier it used. Empty: every remaining document still needs a decision.
5 fields per item
docIdstringrequiredcanonicalDocTypestring | nullrequiredentrySessionIdsstring[]requiredneedlestringrequiredtierstringrequiredOne of 15 values
entry_numberbillcommercialpl_numberpopartmidhtstextvaluetotalsgoodsfuzzypacketpath
countsobject | null2 options
Any of
1.objectThe queue's dispositions.
totalnumberrequiredremainingnumberrequiredStill undecided, handed-back documents included: the gate holds on these.
assignednumberrequiredskippednumberrequiredexcludednumberrequiredescalatednumberrequiredThe subset of
remaininghanded back to a person.
2.nullstillUnplacedobject[]3 fields per item
docIdstringrequiredcanonicalDocTypestring | nullrequiredstatusstringrequiredOne ofunmatchedambiguous
stillUnplacedTotalnumber
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/rematch" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"status": "nothing_unplaced",
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"jobStatus": "string",
"error": "string",
"placed": [
{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"canonicalDocType": "string",
"entrySessionIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
],
"needle": "string",
"tier": "entry_number"
}
],
"counts": {
"total": 1,
"remaining": 100,
"assigned": 100,
"skipped": 100,
"excluded": 100,
"escalated": 100
},
"stillUnplaced": [
{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"canonicalDocType": "string",
"status": "unmatched"
}
],
"stillUnplacedTotal": 1
}The upload's entries and their document coverage
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/packetsRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
Request body
application/json
entrySessionIdstringmissingDocTypestringlimitnumberoffsetnumber
Responses
200Successful response
application/json
entryobjectWith
entrySessionId: that packet's document inventory.6 fields
entrySessionIdstringrequiredentryNumberstring | nullrequiredlabelstringrequiredwarningsstring[]requiredanchorKeysstring[]requireddocsobject[]required6 fields per item
docIdstringrequiredcanonicalDocTypestring | nullrequiredpageRangesobject[]required2 fields per item
startnumberrequiredendnumberrequired
pageCountnumberrequiredisAnchorbooleanrequiredidentifiersobject[]required2 fields per item
labelstringrequiredvaluestringrequired
totalnumberWithout
entrySessionId: entries matching the filter.rowsobject[]Without
entrySessionId: this page of entries with their coverage.5 fields per item
entrySessionIdstringrequiredentryNumberstring | nullrequiredlabelstringrequiredwarningsstring[]requiredcountsobjectrequired4 fields
commercialInvoicenumberrequiredbillOfLadingnumberrequiredpackingListnumberrequiredtotalnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/packets" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"missingDocType": "string",
"limit": 100,
"offset": 100
}'{
"entry": {
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": "string",
"label": "string",
"warnings": [
"string"
],
"anchorKeys": [
"string"
],
"docs": [
{
"docId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"canonicalDocType": "string",
"pageRanges": [
{
"start": 100,
"end": 100
}
],
"pageCount": 0,
"isAnchor": true,
"identifiers": [
{
"label": "string",
"value": "string"
}
]
}
]
},
"total": 1,
"rows": [
{
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": "string",
"label": "string",
"warnings": [
"string"
],
"counts": {
"commercialInvoice": 100,
"billOfLading": 100,
"packingList": 100,
"total": 1
}
}
]
}The sort's findings, ranked
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/findingsRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
Responses
200Successful response
application/json
summaryobjectrequired9 fields
totalnumberrequiredremainingnumberrequiredassignednumberrequiredskippednumberrequiredexcludednumberrequiredescalatednumberrequiredplacedUnaidednumberrequiredDecided straight off the card.
neededSearchnumberrequiredneededFullReadnumberrequired
byKindobject[]requiredWhat to fix, biggest first: ranked by how many documents each fix would recover.
5 fields per item
kindstringrequireddocumentsnumberrequiredfixstringrequiredwherestringrequiredflagsobject[]required9 fields per item
kindstringrequiredOne of 13 values
doctype_misclassifiednon_filing_contentno_anchor_for_entry_numberextraction_gapneedle_gapneedle_too_genericocr_damagedeterministic_rule_candidatematcher_correct_but_gatedduplicate_not_dedupedshared_documentneeds_human_eyesunrenderable_sourcedocIdsstring[]requiredentrySessionIdsstring[]detailstringrequiredevidencestringconfidencestringrequiredOne ofhighmediumlowdispositionstring | nulleffortobject2 fields
searchesnumberrequiredfullReadsnumberrequired
atstringrequired
markdownstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/findings" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"summary": {
"total": 1,
"remaining": 100,
"assigned": 100,
"skipped": 100,
"excluded": 100,
"escalated": 100,
"placedUnaided": 100,
"neededSearch": 100,
"neededFullRead": 100
},
"byKind": [
{
"kind": "string",
"documents": 100,
"fix": "string",
"where": "string",
"flags": [
{
"kind": "doctype_misclassified",
"docIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
],
"entrySessionIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
],
"detail": "string",
"evidence": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"confidence": "high",
"disposition": "assigned",
"effort": {
"searches": 100,
"fullReads": 100
},
"at": "string"
}
]
}
],
"markdown": "string"
}Record a finding across documents
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/findingsRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
Request body
application/json
findingobjectrequired6 fields
kindstringrequiredOne of 13 values
doctype_misclassifiednon_filing_contentno_anchor_for_entry_numberextraction_gapneedle_gapneedle_too_genericocr_damagedeterministic_rule_candidatematcher_correct_but_gatedduplicate_not_dedupedshared_documentneeds_human_eyesunrenderable_sourcedetailstringrequiredWhat you observed, specifically — the field, the number, the rule (20+ characters).
min length 1evidencestringThe text or identifier that PROVES it — a search window, a needle, a metadata value.
confidencestringOne ofhighmediumlowdocIdsstring[]requiredEvery document this finding covers.
min items 1entrySessionIdsstring[]
Responses
200Successful response
application/json
kindstringrequiredOne of 13 values
doctype_misclassifiednon_filing_contentno_anchor_for_entry_numberextraction_gapneedle_gapneedle_too_genericocr_damagedeterministic_rule_candidatematcher_correct_but_gatedduplicate_not_dedupedshared_documentneeds_human_eyesunrenderable_sourcedocIdsstring[]requiredentrySessionIdsstring[]detailstringrequiredevidencestringconfidencestringrequiredOne ofhighmediumlowdispositionstring | nulleffortobject2 fields
searchesnumberrequiredfullReadsnumberrequired
atstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/findings" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"finding": {
"kind": "shared_document",
"detail": "string",
"docIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
]
}
}'{
"kind": "shared_document",
"docIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
],
"entrySessionIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
],
"detail": "string",
"evidence": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"confidence": "high",
"disposition": "assigned",
"effort": {
"searches": 100,
"fullReads": 100
},
"at": "string"
}Release the sort gate and dispatch the entries
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/sort/finishRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (sort session).
Responses
200Successful response
application/json
dispatchednumberrequiredEntries dispatched to filing. Keep calling wait_for_work.
heldbooleanrequiredTrue: sorting is done, and Tarifflo holds the upload before entries are dispatched.
countsobjectrequiredThe queue's dispositions.
6 fields
totalnumberrequiredremainingnumberrequiredStill undecided, handed-back documents included: the gate holds on these.
assignednumberrequiredskippednumberrequiredexcludednumberrequiredescalatednumberrequiredThe subset of
remaininghanded back to a person.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/sort/finish" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"dispatched": 100,
"held": true,
"counts": {
"total": 1,
"remaining": 100,
"assigned": 100,
"skipped": 100,
"excluded": 100,
"escalated": 100
}
}5 endpoints
Configuration
The pipeline configurations an upload can run on.
Get one pipeline configuration
https://api.tarifflo.com/api/v2/pipeline-configurations/{configurationId}Requires the API key scope filing.
ApiKeyorBearerPath parameters
configurationIdstringrequiredThe configuration's id (list_configurations).
min length 1
Responses
200Successful response
application/json
configurationobjectrequired12 fields
idstringrequirednamestringrequireddescriptionstringrequiredisDefaultbooleanrequiredlockedbooleanrequiredisTemporarybooleanrequiredgeneralobjectrequired11 fields
requiredContentmap<string, boolean>requiredKeysfiled_baselineproduct_descriptionhts_codeline_valuequantitycountry_of_originentry_datetransport_eventimporter_identityunidentifiedDocumentsstringrequiredOne ofskipaskfilerIdstring | nullrequiredimporterProfileIdstring | nullrequiredreuseByHashmap<string, boolean>requiredKeysocrbeads_factsincludeLiquidatedbooleanrequiredaskUsContentbooleanrequiredchangeRiskThresholdintegerrequired≥ 0≤ 100filingobjectrequired2 fields
savingsThresholdUsdnumberrequired≥ 0dutyDecreasesOnlybooleanrequired
asycudaCountrystring | nullrequiredrateReportobjectrequired5 fields
primaryDatestring | nullrequiredloadingDatestring | nullrequiredtemplateIdstring | nullrequiredincludeRationalesbooleanrequiredincludeChapter99booleanrequired
jobsmap<string, object>requiredKeys 18 values
sort_documentsagent_sortclassify_productsweb_searchinvoice_htseccncoospipgaadcvddutyreviewreportvalidateapproved_codesstage_filingcargo_release_valueasycuda_declaration1 field per value
onbooleanrequired
validationRulesmap<string, boolean>requiredKeys 42 values
civ_ior_namedciv_us_consignee_for_foreign_iorciv_description_sufficientciv_country_of_originciv_quantityciv_set_components_reconcileciv_unit_and_total_valueciv_total_reconcilesciv_currencyciv_incoterms_or_chargesciv_value_adjustmentsciv_manufacturer_identifiedciv_documents_belonges_parties_match_cives_coo_matches_cives_country_of_export_matches_transportes_export_date_after_ladinges_hts_matches_cives_part_number_correctes_all_civ_hts_presentes_spi_supportedes_values_match_cives_quantities_match_cives_currency_and_exchange_ratees_adjustments_match_incotermses_assists_declaredes_commissions_declaredes_first_sale_supportedes_mid_is_actual_manufactureres_relationship_recordedes_article_set_reproducedes_set_origin_dominancees_set_component_quantitieses_ch99_consistentes_232_claim_matches_descriptiones_232_claim_contradictedes_fees_mpf_hmfes_lines_completees_port_of_lading_matches_transportes_gross_weight_matches_packinges_ior_number_matches_profilees_pga_evidence_presentunsetValidationRulesstring[]requiredread-onlybillingobjectrequired1 field
actionstringrequiredOne ofentry_preparedper_beadnone
lanestringrequiredOne ofentryclassification
posturestringrequiredPre-entry (builds entries from the documents) or post-entry (corrects entries already filed).
pricingstringrequiredWhat a run of it bills, at this organization's prices.
planstringrequiredThe plan it runs, in plain words.
jobCatalogobject[]requiredEvery job a configuration can switch: the keys
jobstakes.7 fields per item
keystringrequiredOne of 18 values
sort_documentsagent_sortclassify_productsweb_searchinvoice_htseccncoospipgaadcvddutyreviewreportvalidateapproved_codesstage_filingcargo_release_valueasycuda_declarationlabelstringrequiredsummarystringrequiredcomingSoonstring | nullrequiredSet while the job cannot be switched on.
alwaysOnstring | nullrequiredSet while the job cannot be switched off.
withinstring | nullrequiredThe job this one refines: it runs only when that one runs.
requiresstring[]required
requirementCatalogobject[]requiredEvery content requirement: the keys
requiredContenttakes.2 fields per item
keystringrequiredOne offiled_baselineproduct_descriptionhts_codeline_valuequantitycountry_of_originentry_datetransport_eventimporter_identitylabelstringrequired
ruleCatalogobject[]requiredEvery validation rule: the keys
validationRulestakes.3 fields per item
keystringrequiredOne of 42 values
civ_ior_namedciv_us_consignee_for_foreign_iorciv_description_sufficientciv_country_of_originciv_quantityciv_set_components_reconcileciv_unit_and_total_valueciv_total_reconcilesciv_currencyciv_incoterms_or_chargesciv_value_adjustmentsciv_manufacturer_identifiedciv_documents_belonges_parties_match_cives_coo_matches_cives_country_of_export_matches_transportes_export_date_after_ladinges_hts_matches_cives_part_number_correctes_all_civ_hts_presentes_spi_supportedes_values_match_cives_quantities_match_cives_currency_and_exchange_ratees_adjustments_match_incotermses_assists_declaredes_commissions_declaredes_first_sale_supportedes_mid_is_actual_manufactureres_relationship_recordedes_article_set_reproducedes_set_origin_dominancees_set_component_quantitieses_ch99_consistentes_232_claim_matches_descriptiones_232_claim_contradictedes_fees_mpf_hmfes_lines_completees_port_of_lading_matches_transportes_gross_weight_matches_packinges_ior_number_matches_profilees_pga_evidence_presentlabelstringrequiredgroupstringrequiredOne ofcommercial_invoiceentry_summary
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/pipeline-configurations/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"configuration": {
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"description": "Laptop computer, 14 inch",
"isDefault": true,
"locked": true,
"isTemporary": true,
"general": {
"requiredContent": {
"filed_baseline": true
},
"unidentifiedDocuments": "skip",
"filerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"importerProfileId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"reuseByHash": {
"ocr": true
},
"includeLiquidated": true,
"askUsContent": true,
"changeRiskThreshold": 1,
"filing": {
"savingsThresholdUsd": 100,
"dutyDecreasesOnly": true
},
"asycudaCountry": "BB",
"rateReport": {
"primaryDate": "2026-01-15",
"loadingDate": "2026-01-15",
"templateId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"includeRationales": true,
"includeChapter99": true
}
},
"jobs": {
"sort_documents": {
"on": true
}
},
"validationRules": {
"civ_ior_named": true
},
"unsetValidationRules": [
"civ_ior_named"
],
"billing": {
"action": "entry_prepared"
},
"lane": "entry"
},
"posture": "string",
"pricing": "string",
"plan": "string",
"jobCatalog": [
{
"key": "sort_documents",
"label": "string",
"summary": "string",
"comingSoon": "string",
"alwaysOn": "string",
"within": "sort_documents",
"requires": [
"filed_baseline"
]
}
],
"requirementCatalog": [
{
"key": "filed_baseline",
"label": "string"
}
],
"ruleCatalog": [
{
"key": "civ_ior_named",
"label": "string",
"group": "commercial_invoice"
}
]
}Change a pipeline configuration (writes a new version)
https://api.tarifflo.com/api/v2/pipeline-configurations/{configurationId}Requires the API key scope filing.
ApiKeyorBearerPath parameters
configurationIdstringrequiredThe configuration's id (list_configurations).
min length 1
Request body
application/json
namestringMax 80 characters.
descriptionstringOne sentence on what this configuration is for (max 240 characters).
jobsstring[]The COMPLETE list of jobs to switch on; every job not listed is off. Read get_configuration's
jobCatalogfor what each does. Omit to keep the starting point's jobs.requiredContentstring[]The COMPLETE list of content the documents must carry, on top of what the jobs already lock.
filed_baselinemakes it a post-entry (already filed) configuration. Omit to keep the starting point's.unidentifiedDocumentsstringaskholds the upload when a document cannot be identified;skipleaves it unread.One ofskipaskimporterProfileIdstring | nullThe CLIENT: the importer profile (see list_importer_profiles) every entry of an upload files for. Required on an entry configuration. An importer organization's is always its own.
filerIdstring | nullThe filer whose codes the run transmits under (see list_filers). Required when
stage_filingis on.asycudaCountrystring | nullThe ASYCUDA World administration
asycuda_declarationbuilds for. Required when that job is on.validationRulesmap<string, boolean>Rule key → on/off, merged over the starting point's rules. get_configuration lists every rule key.
Keys 42 values
civ_ior_namedciv_us_consignee_for_foreign_iorciv_description_sufficientciv_country_of_originciv_quantityciv_set_components_reconcileciv_unit_and_total_valueciv_total_reconcilesciv_currencyciv_incoterms_or_chargesciv_value_adjustmentsciv_manufacturer_identifiedciv_documents_belonges_parties_match_cives_coo_matches_cives_country_of_export_matches_transportes_export_date_after_ladinges_hts_matches_cives_part_number_correctes_all_civ_hts_presentes_spi_supportedes_values_match_cives_quantities_match_cives_currency_and_exchange_ratees_adjustments_match_incotermses_assists_declaredes_commissions_declaredes_first_sale_supportedes_mid_is_actual_manufactureres_relationship_recordedes_article_set_reproducedes_set_origin_dominancees_set_component_quantitieses_ch99_consistentes_232_claim_matches_descriptiones_232_claim_contradictedes_fees_mpf_hmfes_lines_completees_port_of_lading_matches_transportes_gross_weight_matches_packinges_ior_number_matches_profilees_pga_evidence_present
Responses
200Successful response
application/json
idstringrequiredThe NEW version's id. Pass it to file_documents as
configurationId.namestringrequireddescriptionstringrequiredisDefaultbooleanrequiredpostEntrybooleanrequiredtrue: post-entry, corrects entries already filed. false: pre-entry, builds entries from the documents.
jobsOnstring[]requiredimporterProfileIdstring | nullrequiredThe client every entry files for; null while none is picked.
filerIdstring | nullrequiredasycudaCountrystring | nullrequiredbillingstringrequiredOne ofentry_preparedper_beadnoneplanstringrequiredThe plan this configuration runs, in plain words.
retiredIdstringrequiredThe id it replaced, now retired. Uploads that picked it follow to the new id.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/pipeline-configurations/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Example",
"description": "Laptop computer, 14 inch",
"jobs": [
"sort_documents"
],
"requiredContent": [
"filed_baseline"
],
"unidentifiedDocuments": "skip",
"importerProfileId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"filerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"asycudaCountry": "BB",
"validationRules": {
"civ_ior_named": true
}
}'{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"description": "Laptop computer, 14 inch",
"isDefault": true,
"postEntry": true,
"jobsOn": [
"sort_documents"
],
"importerProfileId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"filerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"asycudaCountry": "BB",
"billing": "entry_prepared",
"plan": "string",
"retiredId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}List the organization's pipeline configurations
https://api.tarifflo.com/api/v2/pipeline-configurationsRequires the API key scope filing.
ApiKeyorBearerResponses
200Successful response
application/json
idstringrequirednamestringrequireddescriptionstringrequiredisDefaultbooleanrequiredlockedbooleanrequiredisTemporarybooleanrequiredgeneralobjectrequired11 fields
requiredContentmap<string, boolean>requiredKeysfiled_baselineproduct_descriptionhts_codeline_valuequantitycountry_of_originentry_datetransport_eventimporter_identityunidentifiedDocumentsstringrequiredOne ofskipaskfilerIdstring | nullrequiredimporterProfileIdstring | nullrequiredreuseByHashmap<string, boolean>requiredKeysocrbeads_factsincludeLiquidatedbooleanrequiredaskUsContentbooleanrequiredchangeRiskThresholdintegerrequired≥ 0≤ 100filingobjectrequired2 fields
savingsThresholdUsdnumberrequired≥ 0dutyDecreasesOnlybooleanrequired
asycudaCountrystring | nullrequiredrateReportobjectrequired5 fields
primaryDatestring | nullrequiredloadingDatestring | nullrequiredtemplateIdstring | nullrequiredincludeRationalesbooleanrequiredincludeChapter99booleanrequired
jobsmap<string, object>requiredKeys 18 values
sort_documentsagent_sortclassify_productsweb_searchinvoice_htseccncoospipgaadcvddutyreviewreportvalidateapproved_codesstage_filingcargo_release_valueasycuda_declaration1 field per value
onbooleanrequired
validationRulesmap<string, boolean>requiredKeys 42 values
civ_ior_namedciv_us_consignee_for_foreign_iorciv_description_sufficientciv_country_of_originciv_quantityciv_set_components_reconcileciv_unit_and_total_valueciv_total_reconcilesciv_currencyciv_incoterms_or_chargesciv_value_adjustmentsciv_manufacturer_identifiedciv_documents_belonges_parties_match_cives_coo_matches_cives_country_of_export_matches_transportes_export_date_after_ladinges_hts_matches_cives_part_number_correctes_all_civ_hts_presentes_spi_supportedes_values_match_cives_quantities_match_cives_currency_and_exchange_ratees_adjustments_match_incotermses_assists_declaredes_commissions_declaredes_first_sale_supportedes_mid_is_actual_manufactureres_relationship_recordedes_article_set_reproducedes_set_origin_dominancees_set_component_quantitieses_ch99_consistentes_232_claim_matches_descriptiones_232_claim_contradictedes_fees_mpf_hmfes_lines_completees_port_of_lading_matches_transportes_gross_weight_matches_packinges_ior_number_matches_profilees_pga_evidence_presentunsetValidationRulesstring[]requiredread-onlybillingobjectrequired1 field
actionstringrequiredOne ofentry_preparedper_beadnone
lanestringrequiredOne ofentryclassification
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/pipeline-configurations" \
-H "X-API-Key: $TARIFFLO_API_KEY"[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"description": "Laptop computer, 14 inch",
"isDefault": true,
"locked": true,
"isTemporary": true,
"general": {
"requiredContent": {
"filed_baseline": true
},
"unidentifiedDocuments": "skip",
"filerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"importerProfileId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"reuseByHash": {
"ocr": true
},
"includeLiquidated": true,
"askUsContent": true,
"changeRiskThreshold": 1,
"filing": {
"savingsThresholdUsd": 100,
"dutyDecreasesOnly": true
},
"asycudaCountry": "BB",
"rateReport": {
"primaryDate": "2026-01-15",
"loadingDate": "2026-01-15",
"templateId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"includeRationales": true,
"includeChapter99": true
}
},
"jobs": {
"sort_documents": {
"on": true
}
},
"validationRules": {
"civ_ior_named": true
},
"unsetValidationRules": [
"civ_ior_named"
],
"billing": {
"action": "entry_prepared"
},
"lane": "entry"
}
]Create a pipeline configuration
https://api.tarifflo.com/api/v2/pipeline-configurationsRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
namestringrequiredMax 80 characters.
copyFromstringOptional: the configuration id to start from.
descriptionstringOne sentence on what this configuration is for (max 240 characters).
jobsstring[]The COMPLETE list of jobs to switch on; every job not listed is off. Read get_configuration's
jobCatalogfor what each does. Omit to keep the starting point's jobs.requiredContentstring[]The COMPLETE list of content the documents must carry, on top of what the jobs already lock.
filed_baselinemakes it a post-entry (already filed) configuration. Omit to keep the starting point's.unidentifiedDocumentsstringaskholds the upload when a document cannot be identified;skipleaves it unread.One ofskipaskimporterProfileIdstring | nullThe CLIENT: the importer profile (see list_importer_profiles) every entry of an upload files for. Required on an entry configuration. An importer organization's is always its own.
filerIdstring | nullThe filer whose codes the run transmits under (see list_filers). Required when
stage_filingis on.asycudaCountrystring | nullThe ASYCUDA World administration
asycuda_declarationbuilds for. Required when that job is on.validationRulesmap<string, boolean>Rule key → on/off, merged over the starting point's rules. get_configuration lists every rule key.
Keys 42 values
civ_ior_namedciv_us_consignee_for_foreign_iorciv_description_sufficientciv_country_of_originciv_quantityciv_set_components_reconcileciv_unit_and_total_valueciv_total_reconcilesciv_currencyciv_incoterms_or_chargesciv_value_adjustmentsciv_manufacturer_identifiedciv_documents_belonges_parties_match_cives_coo_matches_cives_country_of_export_matches_transportes_export_date_after_ladinges_hts_matches_cives_part_number_correctes_all_civ_hts_presentes_spi_supportedes_values_match_cives_quantities_match_cives_currency_and_exchange_ratees_adjustments_match_incotermses_assists_declaredes_commissions_declaredes_first_sale_supportedes_mid_is_actual_manufactureres_relationship_recordedes_article_set_reproducedes_set_origin_dominancees_set_component_quantitieses_ch99_consistentes_232_claim_matches_descriptiones_232_claim_contradictedes_fees_mpf_hmfes_lines_completees_port_of_lading_matches_transportes_gross_weight_matches_packinges_ior_number_matches_profilees_pga_evidence_present
Responses
201Successful response
application/json
idstringrequiredPass it to file_documents as
configurationId.namestringrequireddescriptionstringrequiredisDefaultbooleanrequiredpostEntrybooleanrequiredtrue: post-entry, corrects entries already filed. false: pre-entry, builds entries from the documents.
jobsOnstring[]requiredimporterProfileIdstring | nullrequiredThe client every entry files for; null while none is picked.
filerIdstring | nullrequiredasycudaCountrystring | nullrequiredbillingstringrequiredOne ofentry_preparedper_beadnoneplanstringrequiredThe plan this configuration runs, in plain words.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/pipeline-configurations" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Example"
}'{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"description": "Laptop computer, 14 inch",
"isDefault": true,
"postEntry": true,
"jobsOn": [
"sort_documents"
],
"importerProfileId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"filerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"asycudaCountry": "BB",
"billing": "entry_prepared",
"plan": "string"
}List the configurations a sort session can pick
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/pipeline-configurationsRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Responses
200Successful response
application/json
configurationsobject[]required12 fields per item
idstringrequirednamestringrequireddescriptionstringrequiredisDefaultbooleanrequiredlockedbooleanrequiredisTemporarybooleanrequiredgeneralobjectrequired11 fields
requiredContentmap<string, boolean>requiredKeysfiled_baselineproduct_descriptionhts_codeline_valuequantitycountry_of_originentry_datetransport_eventimporter_identityunidentifiedDocumentsstringrequiredOne ofskipaskfilerIdstring | nullrequiredimporterProfileIdstring | nullrequiredreuseByHashmap<string, boolean>requiredKeysocrbeads_factsincludeLiquidatedbooleanrequiredaskUsContentbooleanrequiredchangeRiskThresholdintegerrequired≥ 0≤ 100filingobjectrequired2 fields
savingsThresholdUsdnumberrequired≥ 0dutyDecreasesOnlybooleanrequired
asycudaCountrystring | nullrequiredrateReportobjectrequired5 fields
primaryDatestring | nullrequiredloadingDatestring | nullrequiredtemplateIdstring | nullrequiredincludeRationalesbooleanrequiredincludeChapter99booleanrequired
jobsmap<string, object>requiredKeys 18 values
sort_documentsagent_sortclassify_productsweb_searchinvoice_htseccncoospipgaadcvddutyreviewreportvalidateapproved_codesstage_filingcargo_release_valueasycuda_declaration1 field per value
onbooleanrequired
validationRulesmap<string, boolean>requiredKeys 42 values
civ_ior_namedciv_us_consignee_for_foreign_iorciv_description_sufficientciv_country_of_originciv_quantityciv_set_components_reconcileciv_unit_and_total_valueciv_total_reconcilesciv_currencyciv_incoterms_or_chargesciv_value_adjustmentsciv_manufacturer_identifiedciv_documents_belonges_parties_match_cives_coo_matches_cives_country_of_export_matches_transportes_export_date_after_ladinges_hts_matches_cives_part_number_correctes_all_civ_hts_presentes_spi_supportedes_values_match_cives_quantities_match_cives_currency_and_exchange_ratees_adjustments_match_incotermses_assists_declaredes_commissions_declaredes_first_sale_supportedes_mid_is_actual_manufactureres_relationship_recordedes_article_set_reproducedes_set_origin_dominancees_set_component_quantitieses_ch99_consistentes_232_claim_matches_descriptiones_232_claim_contradictedes_fees_mpf_hmfes_lines_completees_port_of_lading_matches_transportes_gross_weight_matches_packinges_ior_number_matches_profilees_pga_evidence_presentunsetValidationRulesstring[]requiredread-onlybillingobjectrequired1 field
actionstringrequiredOne ofentry_preparedper_beadnone
lanestringrequiredOne ofentryclassification
temporaryobject | nullrequired2 options
Any of
1.objectidstringrequirednamestringrequireddescriptionstringrequiredisDefaultbooleanrequiredlockedbooleanrequiredisTemporarybooleanrequiredgeneralobjectrequired11 fields
requiredContentmap<string, boolean>requiredKeysfiled_baselineproduct_descriptionhts_codeline_valuequantitycountry_of_originentry_datetransport_eventimporter_identityunidentifiedDocumentsstringrequiredOne ofskipaskfilerIdstring | nullrequiredimporterProfileIdstring | nullrequiredreuseByHashmap<string, boolean>requiredKeysocrbeads_factsincludeLiquidatedbooleanrequiredaskUsContentbooleanrequiredchangeRiskThresholdintegerrequired≥ 0≤ 100filingobjectrequired2 fields
savingsThresholdUsdnumberrequired≥ 0dutyDecreasesOnlybooleanrequired
asycudaCountrystring | nullrequiredrateReportobjectrequired5 fields
primaryDatestring | nullrequiredloadingDatestring | nullrequiredtemplateIdstring | nullrequiredincludeRationalesbooleanrequiredincludeChapter99booleanrequired
jobsmap<string, object>requiredKeys 18 values
sort_documentsagent_sortclassify_productsweb_searchinvoice_htseccncoospipgaadcvddutyreviewreportvalidateapproved_codesstage_filingcargo_release_valueasycuda_declaration1 field per value
onbooleanrequired
validationRulesmap<string, boolean>requiredKeys 42 values
civ_ior_namedciv_us_consignee_for_foreign_iorciv_description_sufficientciv_country_of_originciv_quantityciv_set_components_reconcileciv_unit_and_total_valueciv_total_reconcilesciv_currencyciv_incoterms_or_chargesciv_value_adjustmentsciv_manufacturer_identifiedciv_documents_belonges_parties_match_cives_coo_matches_cives_country_of_export_matches_transportes_export_date_after_ladinges_hts_matches_cives_part_number_correctes_all_civ_hts_presentes_spi_supportedes_values_match_cives_quantities_match_cives_currency_and_exchange_ratees_adjustments_match_incotermses_assists_declaredes_commissions_declaredes_first_sale_supportedes_mid_is_actual_manufactureres_relationship_recordedes_article_set_reproducedes_set_origin_dominancees_set_component_quantitieses_ch99_consistentes_232_claim_matches_descriptiones_232_claim_contradictedes_fees_mpf_hmfes_lines_completees_port_of_lading_matches_transportes_gross_weight_matches_packinges_ior_number_matches_profilees_pga_evidence_presentunsetValidationRulesstring[]requiredread-onlybillingobjectrequired1 field
actionstringrequiredOne ofentry_preparedper_beadnone
lanestringrequiredOne ofentryclassification
2.nullselectedIdstring | nullrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/pipeline-configurations" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"configurations": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"description": "Laptop computer, 14 inch",
"isDefault": true,
"locked": true,
"isTemporary": true,
"general": {
"requiredContent": {
"filed_baseline": true
},
"unidentifiedDocuments": "skip",
"filerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"importerProfileId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"reuseByHash": {
"ocr": true
},
"includeLiquidated": true,
"askUsContent": true,
"changeRiskThreshold": 1,
"filing": {
"savingsThresholdUsd": 100,
"dutyDecreasesOnly": true
},
"asycudaCountry": "BB",
"rateReport": {
"primaryDate": "2026-01-15",
"loadingDate": "2026-01-15",
"templateId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"includeRationales": true,
"includeChapter99": true
}
},
"jobs": {
"sort_documents": {
"on": true
}
},
"validationRules": {
"civ_ior_named": true
},
"unsetValidationRules": [
"civ_ior_named"
],
"billing": {
"action": "entry_prepared"
},
"lane": "entry"
}
],
"temporary": {
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"description": "Laptop computer, 14 inch",
"isDefault": true,
"locked": true,
"isTemporary": true,
"general": {
"requiredContent": {
"filed_baseline": true
},
"unidentifiedDocuments": "skip",
"filerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"importerProfileId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"reuseByHash": {
"ocr": true
},
"includeLiquidated": true,
"askUsContent": true,
"changeRiskThreshold": 1,
"filing": {
"savingsThresholdUsd": 100,
"dutyDecreasesOnly": true
},
"asycudaCountry": "BB",
"rateReport": {
"primaryDate": "2026-01-15",
"loadingDate": "2026-01-15",
"templateId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"includeRationales": true,
"includeChapter99": true
}
},
"jobs": {
"sort_documents": {
"on": true
}
},
"validationRules": {
"civ_ior_named": true
},
"unsetValidationRules": [
"civ_ior_named"
],
"billing": {
"action": "entry_prepared"
},
"lane": "entry"
},
"selectedId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}16 endpoints
Uploads
Create an upload, add files, start the run, then read its products, open questions and answers.
Create an upload on a configuration
https://api.tarifflo.com/api/v2/sort-sessionsRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
configurationIdstringnamestringmin length 1max length 100pattern: ^[a-zA-Z0-9-_ ]+$
Responses
200Successful response
application/json
idstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"configurationId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example"
}'{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}List the organization's uploads
https://api.tarifflo.com/api/v2/sort-sessions/searchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
flowTypesstring[]requiredmin items 1
Responses
200Successful response
application/json
idstringrequirednamestringrequiredflowTypestringrequiredOne ofpscproduct_auditclassificationfilingpsc_filingentriesnumberrequireddocumentsnumberrequiredhasRunbooleanrequiredconfigurationNamestring | nullrequiredcreatedAtstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/search" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"flowTypes": [
"psc"
]
}'[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"flowType": "psc",
"entries": 100,
"documents": 100,
"hasRun": true,
"configurationName": "Example",
"createdAt": "string"
}
]List the uploads a linked broker made for this organization
https://api.tarifflo.com/api/v2/sort-sessions/broker-filedRequires the API key scope filing.
ApiKeyorBearerResponses
200Successful response
application/json
idstringrequirednamestringrequiredflowTypestringrequiredOne ofpscproduct_auditclassificationfilingpsc_filingentriesnumberrequireddocumentsnumberrequiredhasRunbooleanrequiredconfigurationNamestring | nullrequiredcreatedAtstringrequiredfiledBystringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/broker-filed" \
-H "X-API-Key: $TARIFFLO_API_KEY"[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"flowType": "psc",
"entries": 100,
"documents": 100,
"hasRun": true,
"configurationName": "Example",
"createdAt": "string",
"filedBy": "string"
}
]A page of the upload's entries with their run and gates
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/entriesRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Request body
application/json
offsetintegerrequired≥ 0≤ 9007199254740991limitintegerrequired≥ 1≤ 100statusFilterobject2 fields
sourcestringrequiredOne ofgateholdquestionfailureunfinishedkeystringrequiredmin length 1
sortobject2 fields
columnstringrequiredOne ofentrypartystatusvarianceupdateddirectionstringrequiredOne ofascdesc
searchstringmin length 1max length 100statusstringOne ofneeds_youfailedheldin_progresscomplete
Responses
200Successful response
application/json
rowsobject[]required14 fields per item
idstringrequiredlabelstringrequiredentryNumberstring | nullrequiredpartystring | nullrequiredrunobject | nullrequired2 options
Any of
1.objectrunobjectrequired21 fields
idstringrequiredorganization_idstringrequireduser_idstringrequireddefinitionobjectrequired1 field
stagesobject[]required6 fields per item
keystringrequireddependsOnstring[]requiredrequiresApprovalbooleanparkPolicystringOne ofholdexcludeunitFailurePolicystringOne ofblockcontinueparamsobject
contextobjectrequired2 fields
productIdsstring[]requiredworkliststring[]
source_kindstring | nullrequiredsource_ref_idstring | nullrequiredparent_run_idstring | nullrequiredrestartobject | nullrequired2 options
Any of
1.objectfromStagestringrequiredatstringrequired
2.nullholdsmap<string, object>required5 fields per value
bystringrequiredatstringrequiredreasonstring | nullrequiredexpiresAtstringrequiredinheritbooleanrequired
statusstringrequiredOne ofrunningblockedcompletefailedcancelledrecent_update_idstring | nullrequirederrorstring | nullrequiredlast_swept_atstring | nullrequiredblocked_atstring | nullrequiredentry_reservation_idstring | nullrequiredapi_key_idstring | nullrequiredapi_environmentstring | nullrequiredwebhook_urlstring | nullrequiredcreated_atstringrequiredupdated_atstringrequired
stagesobject[]required28 fields per item
run_idstringrequiredstage_keystringrequiredstatusstringrequiredOne ofpendingrunningfinalizingcomplete_with_openawaiting_gateheldcompletefailedblockedskippedsealedbooleanrequiredtotalnumberrequiredcompletednumberrequiredfailednumberrequiredparkednumberrequiredfinalize_attemptsnumberrequiredfinalize_started_atstring | nullrequiredapproved_bystring | nullrequiredhold_released_atstring | nullrequiredhold_released_bystring | nullrequiredrecent_update_idstring | nullrequirederrorstring | nullrequirednoticestring | nullrequiredstarted_atstring | nullrequiredcompleted_atstring | nullrequiredblocked_credits_neededstring | nullrequiredblocked_atstring | nullrequiredblocked_deltaobject | nullrequired2 options
Any of
1.objectproductIdsstring[]required
2.nullcreated_atstringrequiredupdated_atstringrequiredawaitingInputCountnumberrequiredfailedUnitCountnumberrequiredfailedUnitsobject[]required4 fields per item
jobIdstringrequiredjobTypestringrequiredproductIdstring | nullrequirederrorstring | nullrequired
gateKeystring | nullrequiredholdobject | nullrequired2 options
Any of
1.objectsincestring | nullrequiredexpiresAtstring | nullrequiredexpiredbooleanrequired
2.null
2.nullproductDescriptionGateobjectrequired3 fields
gatedbooleanrequireddocumentsobject[]required3 fields per item
canonicalDocTypestringrequiredrolestringrequiredOne ofheader_sourceline_sourcesupportingunknowncountnumberrequired
lineSourceDocCountnumberrequired
invoiceCoverageGateobjectrequired4 fields
gatedbooleanrequiredmissingInvoicesobject[]required2 fields per item
invoiceNumberstringrequiredentrystringrequired
acknowledgedobject[]required2 fields per item
invoiceNumberstringrequiredentrystringrequired
noCommercialInvoiceobject | nullrequired2 options
Any of
1.objectpackingListsnumberrequiredtitlestringrequiredmessagestringrequired
2.null
documentCoverageGateobjectrequired4 fields
gatedbooleanrequiredmissingobject[]required3 fields per item
requirementstringrequiredOne offiled_baselineproduct_descriptionhts_codeline_valuequantitycountry_of_originentry_datetransport_eventimporter_identitylabelstringrequireddocTypesstring[]required
waivedobject[]required3 fields per item
requirementstringrequiredOne offiled_baselineproduct_descriptionhts_codeline_valuequantitycountry_of_originentry_datetransport_eventimporter_identitylabelstringrequireddocTypesstring[]required
noCommercialInvoiceobject | nullrequired2 options
Any of
1.objectpackingListsnumberrequiredtitlestringrequiredmessagestringrequired
2.null
valueGateobjectrequired2 fields
gatedbooleanrequiredlinesnumberrequired
validationGateobjectrequired3 fields
gatedbooleanrequiredfindingsobject[]required17 fields per item
idstringrequiredrulestringrequiredruleLabelstring | nullrequiredaboutRulestring | nullrequiredseveritystringrequiredOne oferrorwarninginfosubjectKeystringrequiredsubjectstring | nullrequiredsummarystringrequiredexpectedstring | nullrequiredactualstring | nullrequiredrecommendedFixstringrequiredsourceDocIdstring | nullrequiredoriginalLineIdstring | nullrequiredlineRefstring | nullrequiredfilerCodestring | nullrequiredentryNumberstring | nullrequiredexposureUsdnumber | nullrequired
errorCountnumberrequired
filedLineCountnumberrequiredfiledEnteredValuenumberrequiredopenQuestionsnumberrequiredsavingsobject | nullrequired2 options
Any of
1.objectentrySessionIdstringrequiredsavingsnumberrequireddutyIncreasebooleanrequiredproposedLineCountnumberrequiredneedsReviewCountnumberrequiredentriesobject[]required5 fields per item
filerCodestringrequiredentryNumberstringrequiredsavingsnumberrequireddutyIncreasebooleanrequiredbaselinestringrequiredOne offiled_lines7501_totalsunavailable
linesobject[]required11 fields per item
idstringrequiredfilerCodestringrequiredentryNumberstringrequiredlineNumbernumberrequiredstatusstringrequiredOne ofproposedneeds_reviewcoo_unresolvedkept_originalunattributed_originalexcluded_from_entryreviewReasonsstring[]requiredcountryOfOriginstring | nullrequiredvaluenumberrequireddutynumber | nullrequiredhtsobject[]required4 fields per item
htsNumberstringrequiredtierstringrequiredOne ofbasech99ch98valuenumber | nullrequireddutynumber | nullrequired
itemsobject[]required4 fields per item
productIdstringrequiredpartNumberstring | nullrequireddescriptionstring | nullrequiredvaluenumberrequired
dutyMeasuredbooleanrequiredpostEntrybooleanrequireddutyPayablenumberrequired
2.null
totalnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/entries" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"offset": 1,
"limit": 1
}'{
"rows": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"label": "string",
"entryNumber": "string",
"party": "string",
"run": {
"run": {
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"organization_id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"user_id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"definition": {
"stages": null
},
"context": {
"productIds": null,
"worklist": null
},
"source_kind": "entry_session",
"source_ref_id": null,
"parent_run_id": null,
"restart": null,
"holds": {
"key": null
},
"status": "running",
"recent_update_id": null,
"error": null,
"last_swept_at": null,
"blocked_at": null,
"entry_reservation_id": null,
"api_key_id": null,
"api_environment": "live",
"webhook_url": null,
"created_at": "string",
"updated_at": "2026-01-15"
},
"stages": [
{
"run_id": null,
"stage_key": null,
"status": "complete_with_open",
"sealed": null,
"total": null,
"completed": null,
"failed": null,
"parked": null,
"finalize_attempts": null,
"finalize_started_at": null,
"approved_by": null,
"hold_released_at": null,
"hold_released_by": null,
"recent_update_id": null,
"error": null,
"notice": null,
"started_at": null,
"completed_at": null,
"blocked_credits_needed": null,
"blocked_at": null,
"blocked_delta": null,
"created_at": null,
"updated_at": null,
"awaitingInputCount": null,
"failedUnitCount": null,
"failedUnits": null,
"gateKey": null,
"hold": null
}
]
},
"productDescriptionGate": {
"gated": true,
"documents": [
{
"canonicalDocType": "string",
"role": "header_source",
"count": 1
}
],
"lineSourceDocCount": 1
},
"invoiceCoverageGate": {
"gated": true,
"missingInvoices": [
{
"invoiceNumber": "string",
"entry": "string"
}
],
"acknowledged": [
{
"invoiceNumber": "string",
"entry": "string"
}
],
"noCommercialInvoice": {
"packingLists": 100,
"title": "string",
"message": "string"
}
},
"documentCoverageGate": {
"gated": true,
"missing": [
{
"requirement": "entry_date",
"label": "string",
"docTypes": [
null
]
}
],
"waived": [
{
"requirement": "entry_date",
"label": "string",
"docTypes": [
null
]
}
],
"noCommercialInvoice": {
"packingLists": 100,
"title": "string",
"message": "string"
}
},
"valueGate": {
"gated": true,
"lines": 100
},
"validationGate": {
"gated": true,
"findings": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"rule": "string",
"ruleLabel": null,
"aboutRule": null,
"severity": "error",
"subjectKey": "string",
"subject": null,
"summary": "string",
"expected": null,
"actual": null,
"recommendedFix": "string",
"sourceDocId": null,
"originalLineId": null,
"lineRef": null,
"filerCode": null,
"entryNumber": null,
"exposureUsd": null
}
],
"errorCount": 1
},
"filedLineCount": 1,
"filedEnteredValue": 1000,
"openQuestions": 100,
"savings": {
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"savings": 100,
"dutyIncrease": true,
"proposedLineCount": 1,
"needsReviewCount": 1,
"entries": [
{
"filerCode": null,
"entryNumber": null,
"savings": null,
"dutyIncrease": null,
"baseline": "filed_lines"
}
],
"lines": [
{
"id": null,
"filerCode": null,
"entryNumber": null,
"lineNumber": null,
"status": "excluded_from_entry",
"reviewReasons": null,
"countryOfOrigin": null,
"value": null,
"duty": null,
"hts": null,
"items": null
}
],
"dutyMeasured": true,
"postEntry": true,
"dutyPayable": 100
}
}
],
"total": 1
}Where the upload stands
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}Requires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Responses
200Successful response
application/json
idstringrequirednamestringrequiredconfigurationIdstringrequiredlanestringrequiredOne ofentryclassificationrunsobject[]required5 fields per item
scopestringrequiredOne ofuploadentryrefIdstringrequiredrunIdstringrequiredstatusstringrequiredOne ofrunningblockedcompletefailedcancelledstagesobject[]required8 fields per item
keystringrequiredstatusstringrequiredOne ofpendingrunningfinalizingcomplete_with_openawaiting_gateheldcompletefailedblockedskippedtotalnumberrequiredcompletednumberrequiredfailednumberrequiredparkednumberrequiredawaitingInputnumberrequiredcreditsNeedednumber | nullrequired
countsobject | nullrequired2 options
Any of
1.objectproductsnumberrequiredclassifiednumberrequiredwithOriginnumberrequiredpricednumberrequiredcomparednumberrequiredunpriceablenumberrequiredpendingApprovalnumberrequired
2.nullreportobject | object | object | nullrequired2 options
Any of
1.object | object | objectOne of
1.objectstate"ready"requiredrunIdstringrequiredreportIdstringrequiredfileNamestringrequiredurlstringrequiredexpiresInMinutesnumberrequired
2.objectstate"building"requiredrunIdstringrequired
3.objectstate"unavailable"requiredreasonstringrequired
2.null
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"configurationId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"lane": "entry",
"runs": [
{
"scope": "upload",
"refId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"runId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"status": "running",
"stages": [
{
"key": "string",
"status": "pending",
"total": 1,
"completed": 0,
"failed": 100,
"parked": 100,
"awaitingInput": 100,
"creditsNeeded": 100
}
]
}
],
"counts": {
"products": 100,
"classified": 100,
"withOrigin": 100,
"priced": 100,
"compared": 100,
"unpriceable": 100,
"pendingApproval": 100
},
"report": {
"state": "ready",
"runId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"reportId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"fileName": "Example",
"url": "https://example.com/webhooks/tarifflo",
"expiresInMinutes": 100
}
}Delete an upload and everything under it
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}Requires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Responses
200Successful response
application/json
deletedtruerequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X DELETE "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"deleted": true
}Add files to an upload: one signed PUT URL per file
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/filesRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Request body
application/json
entrySessionIdstring | nullfilesobject[]requiredmin items 1max items 2006 fields per item
filenamestringrequiredmin length 1mimeTypestringrequiredmin length 1sizeintegerrequired≥ 0≤ 104857600pathstring[]max items 50default: []contentHashstringdeclaredDoctype"product_sheet"
Responses
200Successful response
application/json
resultsobject[]required6 fields per item
packetIdstringrequiredsignedUrlstring | nullrequiredfilenamestringrequiredpathstring[]requiredreusedbooleanrequiredentryAttachmentstring | nullrequired
mintednumberrequiredreusednumberrequiredattributednumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/files" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"files": [
{
"filename": "Example",
"mimeType": "string",
"size": 1
}
]
}'{
"results": [
{
"packetId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"signedUrl": "https://example.com/webhooks/tarifflo",
"filename": "Example",
"path": [
"string"
],
"reused": true,
"entryAttachment": "in_sort_run"
}
],
"minted": 100,
"reused": 0,
"attributed": 100
}Confirm the files whose PUT landed
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/files/confirmRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Request body
application/json
packetIdsstring[]requiredmin items 1max items 200
Responses
200Successful response
application/json
confirmednumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/files/confirm" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"packetIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
]
}'{
"confirmed": 100
}Upload one entry's documents inline and start it
https://api.tarifflo.com/api/v2/entry-uploads/inlineRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
attachmentsobject[]requiredEach document's filename and its bytes, base64.
min items 12 fields per item
filenamestringrequiredcontentBase64stringrequired
configurationIdstringREQUIRED for a new entry: the pipeline configuration it runs (list_configurations).
entryIdstringOptional: add to this existing entry instead of starting a new one.
namestringOptional name for a new entry.
Responses
200Successful response
application/json
The documents are stored on one entry summary and the analysis has started. Then call wait_for_work with jobType "filing" and this sortSessionId repeatedly until it says the entry is ready.
sortSessionIdstringrequiredThe upload. wait_for_work with jobType "filing" takes it as jobId.
entrySessionIdstringrequiredThe one entry; pass it as entryId to add more documents to it.
uploadednumberrequiredDocuments stored by this call.
reusednumberrequiredDocuments already on file, not stored again.
configurationobject | nullrequiredThe configuration a NEW entry runs (null when the documents went to an existing entry).
2 options
Any of
1.objectidstringrequirednamestringrequiredposturestringrequired
2.null
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entry-uploads/inline" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"attachments": [
{
"filename": "Example",
"contentBase64": "string"
}
]
}'{
"sortSessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"uploaded": 100,
"reused": 0,
"configuration": {
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"posture": "string"
}
}Start one entry's upload: one signed PUT URL per file
https://api.tarifflo.com/api/v2/entry-uploadsRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
filesobject[]requiredThe files you will PUT yourself.
min items 16 fields per item
filenamestringrequiredsizenumberrequiredBytes.
contentHashstringOptional SHA-256 hex of the bytes — a file already on the upload is not uploaded again.
pathstring[]Optional folder path the file came from, outermost first.
mimeTypestringdeclaredDoctypestringOptional: the user declared this spreadsheet a product sheet.
One ofproduct_sheet
entryIdstringOptional: attach to this existing entry instead of starting a new one.
namestringOptional name for a new entry.
configurationIdstringREQUIRED for a new entry: the pipeline configuration it runs (list_configurations).
Responses
200Successful response
application/json
Then call confirm_uploads with this sortSessionId, entrySessionId and the outcome of EVERY putUrl (uploaded / failed / skipped). The analysis starts only when every file is in storage.
sortSessionIdstringrequiredThe upload. wait_for_work with jobType "filing" takes it as jobId.
entrySessionIdstringrequiredThe one entry; pass it as entryId to add more documents to it.
uploadsobject[]required5 fields per item
filenamestringrequiredpacketIdstringrequiredputUrlstring | nullrequiredPUT the file's raw bytes here (e.g.
curl -sf -X PUT -T <path> '<putUrl>'). Null when alreadyOnFile.alreadyOnFilebooleanrequiredTrue: these bytes are already on the upload; nothing to PUT.
entryAttachmentstringOne ofattachedalready_on_entryin_sort_run
configurationobject | nullrequiredThe configuration a NEW entry runs (null when the documents went to an existing entry).
2 options
Any of
1.objectidstringrequirednamestringrequiredposturestringrequired
2.null
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entry-uploads" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"files": [
{
"filename": "Example",
"size": 100
}
]
}'{
"sortSessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"uploads": [
{
"filename": "Example",
"packetId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"putUrl": "https://example.com/webhooks/tarifflo",
"alreadyOnFile": true,
"entryAttachment": "already_on_entry"
}
],
"configuration": {
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"posture": "string"
}
}Settle one entry's PUTs against storage and start it
https://api.tarifflo.com/api/v2/entry-uploads/{sortSessionId}/confirmRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Request body
application/json
entrySessionIdstringrequiredThe entry file_documents returned.
uploadsobject[]requiredOne item per putUrl: the packetId and what the PUT did.
2 fields per item
packetIdstringrequiredoutcomestringrequireduploaded = the PUT returned 2xx; failed = it did not; skipped = do not file this document.
One ofuploadedfailedskipped
startAnalysisbooleanDefault true. False only confirms; a later call starts the analysis.
Responses
200Successful response
application/json
Tarifflo checked storage for every putUrl file_documents returned.
sortSessionIdstringrequiredThe upload. wait_for_work with jobType "filing" takes it as jobId.
entrySessionIdstringrequiredThe one entry; pass it as entryId to add more documents to it.
confirmednumberrequiredskippednumberrequiredunsettledobject[]requiredFiles not in storage, so the analysis did NOT start. PUT each to its new putUrl, then call confirm_uploads again with an outcome for each; report "skipped" for a file the user does not want filed.
4 fields per item
packetIdstringrequiredfilenamestringrequiredreasonstringrequiredOne ofnot_reportedreported_failednot_in_storagesize_mismatchputUrlstringrequiredA fresh URL: PUT the file again here.
startedbooleanrequiredTrue: every file is stored and the analysis started. Then call wait_for_work with jobType "filing" and this sortSessionId repeatedly until it says the entry is ready.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entry-uploads/01a19e37-837d-7c16-9a5d-3bef820fcff7/confirm" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"uploads": [
{
"packetId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"outcome": "uploaded"
}
]
}'{
"sortSessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"confirmed": 100,
"skipped": 100,
"unsettled": [
{
"packetId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"filename": "Example",
"reason": "not_in_storage",
"putUrl": "https://example.com/webhooks/tarifflo"
}
],
"started": true
}Start, or re-drive, the upload's run
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/startRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Responses
200Successful response
application/json
queuedCountnumberrequiredrunIdstring | nullrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/start" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"queuedCount": 1,
"runId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}A product's rate facts and its printed-code comparison
https://api.tarifflo.com/api/v2/products/{productId}/classificationRequires the API key scope filing.
ApiKeyorBearerPath parameters
productIdstringrequired
Responses
200Successful response
application/json
factsobjectrequired3 fields
entryDatestring | nullrequiredshipmentValuenumber | nullrequiredsharesobjectrequired4 fields
steelnumberaluminumnumbercoppernumberusContentnumber
comparisonobject | nullrequired2 options
Any of
1.objectproduct_idstringrequireddestinationstringrequiredoriginstring | nullrequiredoriginal_codestringrequiredproposed_codestringrequiredoriginal_ratenumber | nullrequiredproposed_ratenumber | nullrequireddelta_ptsnumber | nullrequiredcustoms_valuenumber | nullrequiredsavingsnumber | nullrequiredrisk_scorenumberrequiredriskstringrequiredrisk_reasonsstring[]required
2.nullcomponentsobject[]required13 fields per item
product_idstringrequireddestinationstringrequiredoriginstring | nullrequiredoriginal_codestringrequiredproposed_codestringrequiredoriginal_ratenumber | nullrequiredproposed_ratenumber | nullrequireddelta_ptsnumber | nullrequiredcustoms_valuenumber | nullrequiredsavingsnumber | nullrequiredrisk_scorenumberrequiredriskstringrequiredrisk_reasonsstring[]required
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/products/01a19e37-837d-7c16-9a5d-3bef820fcff7/classification" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"facts": {
"entryDate": "2026-01-15",
"shipmentValue": 1000,
"shares": {
"steel": 100,
"aluminum": 100,
"copper": 100,
"usContent": 100
}
},
"comparison": {
"product_id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"destination": "US",
"origin": "CN",
"original_code": "CN",
"proposed_code": "string",
"original_rate": 100,
"proposed_rate": 100,
"delta_pts": 100,
"customs_value": 1000,
"savings": 100,
"risk_score": 100,
"risk": "string",
"risk_reasons": [
"string"
]
},
"components": [
{
"product_id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"destination": "US",
"origin": "CN",
"original_code": "CN",
"proposed_code": "string",
"original_rate": 100,
"proposed_rate": 100,
"delta_pts": 100,
"customs_value": 1000,
"savings": 100,
"risk_score": 100,
"risk": "string",
"risk_reasons": [
"string"
]
}
]
}A page of the upload's products, filtered and sorted
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/productsRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Request body
application/json
startRowintegerrequired≥ 0≤ 9007199254740991endRowintegerrequired≥ 1≤ 9007199254740991statusstringOne ofPENDINGPROCESSINGAWAITING_INPUTPENDING_APPROVALAPPROVEDREJECTEDCOMPLETEDUPLOADEDFAILEDsearchstringmin length 1max length 100sortobject2 fields
columnstringrequiredOne ofnamedescriptionoriginhtsstatusupdatedAtdirectionstringrequiredOne ofascdesc
Responses
200Successful response
application/json
rowsobject[]required11 fields per item
idstringrequirednamestringrequireddescriptionstringrequiredstatusstringrequiredOne ofPENDINGPROCESSINGAWAITING_INPUTPENDING_APPROVALAPPROVEDREJECTEDCOMPLETEDUPLOADEDFAILEDcodestring | nullrequiredoriginstring | nullrequiredoriginalCodestring | nullrequiredoriginalRatestring | nullrequiredratestring | nullrequiredeccnstring | nullrequiredupdatedAtstringrequired
totalnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/products" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"startRow": 1,
"endRow": 1
}'{
"rows": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"description": "Laptop computer, 14 inch",
"status": "PENDING",
"code": "string",
"origin": "CN",
"originalCode": "CN",
"originalRate": "CN",
"rate": "string",
"eccn": "string",
"updatedAt": "2026-01-15"
}
],
"total": 1
}The open questions as a sheet to fill in
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/questionsRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Query parameters
timeZonestringmax length 64
Responses
200Successful response
application/json
Any of
urlstringrequiredfileNamestringrequiredquestionsnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/questions" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"url": "https://example.com/webhooks/tarifflo",
"fileName": "Example",
"questions": 100
}The questions sheet, filled in
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/answersRequires the API key scope filing.
ApiKeyorBearerPath parameters
sortSessionIdstringrequired
Request body
application/json
fileBase64stringrequiredmin length 1max length 30000000
Responses
200Successful response
application/json
answeredRowsnumberrequiredunmatchedRowsnumberrequiredanswerednumberrequiredresumedJobsnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/answers" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fileBase64": "string"
}'{
"answeredRows": 100,
"unmatchedRows": 100,
"answered": 100,
"resumedJobs": 100
}1 endpoint
Rate report
Build or fetch the duty-rate report for an upload.
Build or fetch the upload's rate report at each product's origin on file
https://api.tarifflo.com/api/v2/sort-sessions/{sortSessionId}/rate-reportRequires the API key scope tariff_rates.
ApiKeyorBearerPath parameters
sortSessionIdstringrequiredThe upload (file_documents returns it).
min length 1
Request body
application/json
restartbooleanStart a new report when the previous run failed or was cancelled.
Responses
200Successful response
application/json
One of
state"ready"requiredrunIdstringrequiredreportIdstringrequiredfileNamestringrequiredurlstringrequiredexpiresInMinutesnumberrequired
state"building"requiredrunIdstringrequired
state"unavailable"requiredreasonstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/sort-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/rate-report" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"restart": true
}'{
"state": "ready",
"runId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"reportId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"fileName": "Example",
"url": "https://example.com/webhooks/tarifflo",
"expiresInMinutes": 100
}27 endpoints
Entries
File entry summaries with CBP, read CBP's responses and manage versions.
File an entry summary
https://api.tarifflo.com/api/v2/entriesValidates, writes and submits a whole entry summary. CBP's answer arrives as an entry.disposition webhook. A repeat of an Idempotency-Key answers the first result with Idempotent-Replayed: true.
Requires the API key scope entries:write.
ApiKeyorBearerHeaders
Idempotency-Keystringrequiredmin length 1max length 255
Request body
application/json
entryobjectrequiredThe entry summary to file; its shape is documented at https://tarifflo.com/docs/v2.
webhookUrlstringWhere the
entry.dispositionwebhook goes; defaults to the key environment's URL.
Responses
201Filed and submitted to CBP
application/json
efidstringrequiredentryNumbernumbershortJobIdstringrequiredstatus"AWAITING_CBP"required
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
412No webhook URL for the key's environment
application/json
errorobjectrequired7 fields
codestringrequiredexample: PRECONDITION_FAILEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
422The entry is not valid
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNPROCESSABLE_CONTENTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
502Submitting to CBP failed
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_GATEWAYmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"entry": {}
}'{
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": 1,
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"status": "AWAITING_CBP"
}Create an entry, or records inside one (or list what can be created)
https://api.tarifflo.com/api/v2/entries/createRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
mapTypestring'entry', 'lineItem', 'tariffRow' or a PGA type. Omit to list what can be created.
efidstringFor records: the entry they go on.
recordsobject[]For records: one object per record (1-50). Coordinates take handles. Use {} when nothing needs naming.
min items 1max items 505 fields per item
lineItemIdstringThe line, by handle ('L1').
min length 1tariffRowIdstringPGA only: the row it rides, by handle ('L1.R1').
min length 1parentTariffRowIdstringSub tariff row only: its main row, by handle ('L1.R1').
min length 1chapterstringSub tariff row only, required there.
One ofch98ch99htsNumberstringTariff row only: seed its HTS number (8 digits for Chapter 99, 10 for 1-97).
min length 1
countintegerFor records, instead of
records: how many blank ones (1-50). Defaults to 1.≥ 1≤ 50templateEntryNumberstring | numberEntry only, optional: the entry number to copy, however the user writes it —
12345678,S8L-1234567-8, or the full 11-digit form.list_recent_entriesshows what the organization has.templateEfidstringEntry only, optional: the template's efid, if you already hold one instead of a number. Do not pass both.
includeLineItemsbooleanEntry only, optional, default true: copy the template's line items and their PGAs. Ignored without a template.
Responses
200Successful response
application/json
One of
What can be created. THIS connector creates entry forms, and inside an entry (efid) lineItem, tariffRow and the PGA types; the rest are made in the Tarifflo app.
kind"catalog"requiredcreatableobject[]required5 fields per item
mapTypestringrequiredkindstringrequiredform: a new form. child: a record inside one of
forms.One offormchildformsstring[]requireddescriptionstringrequiredcoordinatesobject[]required4 fields per item
namestringrequiredrequiredbooleanrequiredinferablebooleanrequiredMay be omitted when the entry holds only one candidate.
descriptionstringrequired
pgasobject | nullrequiredPGA message sets: each rides one tariff row, and every type takes the same coordinates.
2 options
Any of
1.objectformsstring[]requiredcoordinatesobject[]required4 fields per item
namestringrequiredrequiredbooleanrequiredinferablebooleanrequiredMay be omitted when the entry holds only one candidate.
descriptionstringrequired
typesobject[]required2 fields per item
pgaTypestringrequiredOne of 25 values
odsvAndEpesticidets1Ts2hfchmsnhtsaaplaacApqAvsAbsegMOORPNttbomcfwsdeafsidrugsbiologicscosmeticMedicalRadiationtobaccopriorNoticefoodCombinedfoodNonPNnmfSection370nmfAmrnmfSimnamestringrequired
2.null
A new entry summary. It has no entry number: that is assigned at submission.
kind"entry"requiredefidstringrequiredfromstringrequiredblank: add line items with create (mapType 'lineItem').
One ofblanktemplatetemplateobjectThe copied entry. Everything but the dates carries over verbatim, INCLUDING post-summary-correction status — check that before filing an original entry.
7 fields
efidstringrequiredentryNumberstring | nullrequiredmatchednumberrequiredEntries carrying the requested number. More than one: the most recent was used.
includeLineItemsbooleanrequiredFalse: only the header was copied, NO line items — add the goods with create (mapType 'lineItem').
lineItemCountnumberrequiredpgaCountnumberrequiredclearedDateFieldsstring[]requiredEvery date was cleared: re-enter each for THIS shipment.
urlstringrequiredWhere the user can watch the entry fill.
overviewobjectrequiredWork a section at a time with whats_left → set_fields. Sections: 'shipping' (header), then handles by position — L1 (line 1), L1.R1 (its first tariff row), L1.R1.nhtsa (that row's NHTSA record; a second is nhtsa-2). Field paths take the same handles: L1.R1.htsNumber.
7 fields
efidstringrequiredstatusstring | nullrequiredThe entry's status (DRAFT, ACCEPTED, …).
editablebooleanrequiredFalse: the entry is filed and READ-ONLY. Read it freely, but call edit_entry to create a draft before changing it.
linesnumberrequiredLine items, addressed L1 … Ln.
rowsnumberrequiredTariff rows across every line item.
pgasnumberrequiredPGA records across every tariff row.
headerRequiredEmptynumberrequiredRequired header ('shipping') fields still empty.
kind"records"requiredefidstringrequiredmapTypestringrequiredcreatedobject[]requiredThe new sections, by handle. Fill each with whats_left / set_fields.
3 fields per item
handlestringrequiredinitPathstringrequiredkeystringrequired
lineCountnumberrequiredLine items on the entry now.
sectionobjectWhen exactly one tariff row or PGA record was created: its section, ready to fill.
8 fields
sectionstringrequiredThe section's handle ('shipping', 'L1', 'L1.R1', 'L1.R1.nhtsa'); every path below is relative to it.
requiredstring[]requiredRequired fields still empty. Conditional fields appear as their triggers fill, so read the section again after each round of writes.
optionalstring[]Optional fields still empty; listed only when asked for.
datamap<string, object>The values the section already holds; empty fields are left out.
errorsmap<string, string>Field path → error message.
warningsmap<string, string[]>Field path → advisories; never blocking.
editedByOthersmap<string, string>Fields another editor last wrote (who, how long ago). Treat a user's edit as intended — never change one back; if it blocks the filing, ask the user.
notestringSet when someone outside this session changed the entry since you last looked: re-read before writing.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/create" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mapType": "string",
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"records": [
{
"lineItemId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"tariffRowId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"parentTariffRowId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"chapter": "ch98",
"htsNumber": "8471.30.0100"
}
],
"count": 1,
"templateEntryNumber": "string",
"templateEfid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"includeLineItems": true
}'{
"kind": "catalog",
"creatable": [
{
"mapType": "string",
"kind": "form",
"forms": [
"string"
],
"description": "Laptop computer, 14 inch",
"coordinates": [
{
"name": "Example",
"required": true,
"inferable": true,
"description": "Laptop computer, 14 inch"
}
]
}
],
"pgas": {
"forms": [
"string"
],
"coordinates": [
{
"name": "Example",
"required": true,
"inferable": true,
"description": "Laptop computer, 14 inch"
}
],
"types": [
{
"pgaType": "ods",
"name": "Example"
}
]
}
}Get an entry's overview
https://api.tarifflo.com/api/v2/entries/{efid}/summaryRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Responses
200Successful response
application/json
Work a section at a time with whats_left → set_fields. Sections: 'shipping' (header), then handles by position — L1 (line 1), L1.R1 (its first tariff row), L1.R1.nhtsa (that row's NHTSA record; a second is nhtsa-2). Field paths take the same handles: L1.R1.htsNumber.
efidstringrequiredstatusstring | nullrequiredThe entry's status (DRAFT, ACCEPTED, …).
editablebooleanrequiredFalse: the entry is filed and READ-ONLY. Read it freely, but call edit_entry to create a draft before changing it.
linesnumberrequiredLine items, addressed L1 … Ln.
rowsnumberrequiredTariff rows across every line item.
pgasnumberrequiredPGA records across every tariff row.
headerRequiredEmptynumberrequiredRequired header ('shipping') fields still empty.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/summary" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"status": "string",
"editable": true,
"lines": 100,
"rows": 100,
"pgas": 100,
"headerRequiredEmpty": 100
}Open an entry in the validation engine
https://api.tarifflo.com/api/v2/entries/{efid}/openRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Responses
200Successful response
application/json
Work a section at a time with whats_left → set_fields. Sections: 'shipping' (header), then handles by position — L1 (line 1), L1.R1 (its first tariff row), L1.R1.nhtsa (that row's NHTSA record; a second is nhtsa-2). Field paths take the same handles: L1.R1.htsNumber.
efidstringrequiredstatusstring | nullrequiredThe entry's status (DRAFT, ACCEPTED, …).
editablebooleanrequiredFalse: the entry is filed and READ-ONLY. Read it freely, but call edit_entry to create a draft before changing it.
linesnumberrequiredLine items, addressed L1 … Ln.
rowsnumberrequiredTariff rows across every line item.
pgasnumberrequiredPGA records across every tariff row.
headerRequiredEmptynumberrequiredRequired header ('shipping') fields still empty.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/open" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"status": "string",
"editable": true,
"lines": 100,
"rows": 100,
"pgas": 100,
"headerRequiredEmpty": 100
}Make a filed entry editable as a new draft
https://api.tarifflo.com/api/v2/entries/{efid}/editRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Responses
200Successful response
application/json
efidstringrequiredstatusstring | nullrequiredThe entry's status (DRAFT, ACCEPTED, …).
editablebooleanrequiredFalse: the entry is filed and READ-ONLY. Read it freely, but call edit_entry to create a draft before changing it.
linesnumberrequiredLine items, addressed L1 … Ln.
rowsnumberrequiredTariff rows across every line item.
pgasnumberrequiredPGA records across every tariff row.
headerRequiredEmptynumberrequiredRequired header ('shipping') fields still empty.
draftCreatedbooleanrequiredTrue: a new DRAFT version was created and the filed version stays as it was. False: the entry was already editable; nothing changed.
previousStatusstring | nullrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/edit" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"status": "string",
"editable": true,
"lines": 100,
"rows": 100,
"pgas": 100,
"headerRequiredEmpty": 100,
"draftCreated": true,
"previousStatus": "string"
}Save and re-read an entry
https://api.tarifflo.com/api/v2/entries/{efid}/reloadRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Responses
200Successful response
application/json
Work a section at a time with whats_left → set_fields. Sections: 'shipping' (header), then handles by position — L1 (line 1), L1.R1 (its first tariff row), L1.R1.nhtsa (that row's NHTSA record; a second is nhtsa-2). Field paths take the same handles: L1.R1.htsNumber.
efidstringrequiredstatusstring | nullrequiredThe entry's status (DRAFT, ACCEPTED, …).
editablebooleanrequiredFalse: the entry is filed and READ-ONLY. Read it freely, but call edit_entry to create a draft before changing it.
linesnumberrequiredLine items, addressed L1 … Ln.
rowsnumberrequiredTariff rows across every line item.
pgasnumberrequiredPGA records across every tariff row.
headerRequiredEmptynumberrequiredRequired header ('shipping') fields still empty.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/reload" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"status": "string",
"editable": true,
"lines": 100,
"rows": 100,
"pgas": 100,
"headerRequiredEmpty": 100
}Save an entry and finish with it
https://api.tarifflo.com/api/v2/entries/{efid}/closeRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Responses
200Successful response
application/json
efidstringrequiredoutcomestringrequiredsaved: everything written is saved. read_only: nothing to save. save_failed: the last save failed (see
error).One ofsavedread_onlysave_failederrorstring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/close" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"outcome": "saved",
"error": "string"
}List what one section of an entry still needs
https://api.tarifflo.com/api/v2/entries/{efid}/whats-leftRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Request body
application/json
initPathstringrequired'shipping' for the header, or a handle: 'L1', 'L1.R1', 'L1.R1.nhtsa'.
min length 1optionalbooleanAlso list the optional fields still empty. Default false.
Responses
200Successful response
application/json
sectionstringrequiredThe section's handle ('shipping', 'L1', 'L1.R1', 'L1.R1.nhtsa'); every path below is relative to it.
requiredstring[]requiredRequired fields still empty. Conditional fields appear as their triggers fill, so read the section again after each round of writes.
optionalstring[]Optional fields still empty; listed only when asked for.
datamap<string, object>The values the section already holds; empty fields are left out.
errorsmap<string, string>Field path → error message.
warningsmap<string, string[]>Field path → advisories; never blocking.
editedByOthersmap<string, string>Fields another editor last wrote (who, how long ago). Treat a user's edit as intended — never change one back; if it blocks the filing, ask the user.
notestringSet when someone outside this session changed the entry since you last looked: re-read before writing.
awaitingCbpnumberrequiredFields still waiting on an answer from CBP. Non-zero: call validate again for the final verdict.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/whats-left" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"initPath": "string"
}'{
"section": "string",
"required": [
"string"
],
"optional": [
"string"
],
"data": {
"key": {}
},
"errors": {
"key": "string"
},
"warnings": {
"key": [
"string"
]
},
"editedByOthers": {
"key": "string"
},
"note": "string",
"awaitingCbp": 100
}Write field values to an entry
https://api.tarifflo.com/api/v2/entries/{efid}/fieldsRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Request body
application/json
sectionstringOptional: a section ('shipping', 'L1', 'L1.R1', 'L1.R1.nhtsa'). When given,
fieldskeys are relative to it.fieldsmap<string, object>requiredMap of field path → value. Paths are relative to
sectionwhen it is given, else full ('L1.countryOfOrigin', 'shipping.type').
Responses
200Successful response
application/json
writtennumberrequiredsectionsobject[]requiredEach section the write touched. Read its errors before writing more.
9 fields per item
sectionstringrequiredThe section's handle ('shipping', 'L1', 'L1.R1', 'L1.R1.nhtsa'); every path below is relative to it.
requiredstring[]requiredRequired fields still empty. Conditional fields appear as their triggers fill, so read the section again after each round of writes.
optionalstring[]Optional fields still empty; listed only when asked for.
datamap<string, object>The values the section already holds; empty fields are left out.
errorsmap<string, string>Field path → error message.
warningsmap<string, string[]>Field path → advisories; never blocking.
editedByOthersmap<string, string>Fields another editor last wrote (who, how long ago). Treat a user's edit as intended — never change one back; if it blocks the filing, ask the user.
notestringSet when someone outside this session changed the entry since you last looked: re-read before writing.
derivedmap<string, object>Values the engine derived from your write (autofills); you did not write them.
overwroteobject[]Fields this write replaced while another editor's change was the last one on them. A user's edit is intentional — if it blocks the filing, ask the user rather than changing it back.
3 fields per item
pathstringrequirededitorstringrequiredagostringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/fields" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fields": {
"key": {}
}
}'{
"written": 100,
"sections": [
{
"section": "string",
"required": [
"string"
],
"optional": [
"string"
],
"data": {
"key": {}
},
"errors": {
"key": "string"
},
"warnings": {
"key": [
"string"
]
},
"editedByOthers": {
"key": "string"
},
"note": "string",
"derived": {
"key": {}
}
}
],
"overwrote": [
{
"path": "string",
"editor": "string",
"ago": "string"
}
]
}Move a line item to another line number
https://api.tarifflo.com/api/v2/entries/{efid}/line-items/{lineItemId}/moveRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1lineItemIdstringrequiredThe line to move, by handle ('L3').
min length 1
Request body
application/json
lineNumberintegerrequiredThe 1-based line number it takes. A number past the last line moves it to the end.
≥ 1≤ 9007199254740991
Responses
200Successful response
application/json
Handles of the lines between have shifted.
lineItemIdstringrequiredlineNumbernumberrequiredhandlestringrequiredThe line's handle now.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/line-items/01a19e37-837d-7c16-9a5d-3bef820fcff7/move" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"lineNumber": 1
}'{
"lineItemId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"lineNumber": 1,
"handle": "string"
}List the PGA filings an entry's line items need
https://api.tarifflo.com/api/v2/entries/{efid}/pgasRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Query parameters
initPathstring
Responses
200Successful response
application/json
linesobject[]requiredOnly the lines with something to act on; empty when no checked line carries a PGA tariff flag. For an applicable type not yet created, or a choice, call
create(mapType the PGA type, tariffRowId the row, e.g. L1.R1), then fill the section it returns.7 fields per item
handlestringrequiredflagsstring[]requiredarticleSetHeaderbooleanrequiredTrue: an article-set header line (articleSetIndicator 'X'). CBP does not allow PGA data here.
applicableobject[]required7 fields per item
pgaTypestringrequiredOne of 25 values
odsvAndEpesticidets1Ts2hfchmsnhtsaaplaacApqAvsAbsegMOORPNttbomcfwsdeafsidrugsbiologicscosmeticMedicalRadiationtobaccopriorNoticefoodCombinedfoodNonPNnmfSection370nmfAmrnmfSimnamestringrequiredfilerActionstringrequiredrequired: a full filing is required — it cannot be disclaimed. disclaim-allowed: fill it if the goods apply; otherwise file a disclaimer. skip-allowed: fill it if the goods apply; otherwise it may be omitted entirely.
One ofrequireddisclaim-allowedskip-allowedflagsstring[]requiredallowedDisclaimersstring[]Only these disclaim codes are allowed.
guidancestringrequiredexistingnumberrequiredRecords of this type already on the line. Add another only if a second HTS needs one.
choicesobject[]requiredFlags that need ONE program picked from
options.3 fields per item
flagstringrequiredguidancestringrequiredoptionsobject[]required2 fields per item
pgaTypestringrequiredOne of 25 values
odsvAndEpesticidets1Ts2hfchmsnhtsaaplaacApqAvsAbsegMOORPNttbomcfwsdeafsidrugsbiologicscosmeticMedicalRadiationtobaccopriorNoticefoodCombinedfoodNonPNnmfSection370nmfAmrnmfSimnamestringrequired
existingobject[]requiredPGA records ALREADY CREATED on the line.
4 fields per item
pgaTypestringrequiredOne of 25 values
odsvAndEpesticidets1Ts2hfchmsnhtsaaplaacApqAvsAbsegMOORPNttbomcfwsdeafsidrugsbiologicscosmeticMedicalRadiationtobaccopriorNoticefoodCombinedfoodNonPNnmfSection370nmfAmrnmfSimnamestringrequiredhandlestringrequiredhtsNumberstring
unsupportedFlagsobject[]requiredAgencies with no Tarifflo module: they cannot be filed here.
2 fields per item
flagstringrequireddescriptionstringrequired
awaitingCbpnumberrequiredFields still waiting on an answer from CBP. Non-zero: call validate again for the final verdict.
otherPgaTypesstring[]requiredPGA types no checked line suggests.
createstill accepts them, with a not-applicable warning.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/pgas" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"lines": [
{
"handle": "string",
"flags": [
"string"
],
"articleSetHeader": true,
"applicable": [
{
"pgaType": "ods",
"name": "Example",
"filerAction": "required",
"flags": [
"string"
],
"allowedDisclaimers": [
"string"
],
"guidance": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"existing": 100
}
],
"choices": [
{
"flag": "string",
"guidance": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"options": [
{
"pgaType": "ods",
"name": null
}
]
}
],
"existing": [
{
"pgaType": "ods",
"name": "Example",
"handle": "string",
"htsNumber": "8471.30.0100"
}
],
"unsupportedFlags": [
{
"flag": "string",
"description": "Laptop computer, 14 inch"
}
]
}
],
"awaitingCbp": 100,
"otherPgaTypes": [
"ods"
]
}Delete a PGA record
https://api.tarifflo.com/api/v2/entries/{efid}/pgas/{compositeKey}Requires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1compositeKeystringrequiredThe record, by handle ('L1.R1.nhtsa').
min length 1
Query parameters
pgaTypestringrequiredThe record's PGA type, as list_pgas reports it.
One of 25 values
odsvAndEpesticidets1Ts2hfchmsnhtsaaplaacApqAvsAbsegMOORPNttbomcfwsdeafsidrugsbiologicscosmeticMedicalRadiationtobaccopriorNoticefoodCombinedfoodNonPNnmfSection370nmfAmrnmfSim
Responses
200Successful response
application/json
Later records of that type on the row moved up one handle.
deletedstringrequiredpgaTypestringrequiredOne of 25 values
odsvAndEpesticidets1Ts2hfchmsnhtsaaplaacApqAvsAbsegMOORPNttbomcfwsdeafsidrugsbiologicscosmeticMedicalRadiationtobaccopriorNoticefoodCombinedfoodNonPNnmfSection370nmfAmrnmfSimnamestringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X DELETE "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/pgas/string?pgaType=ods" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"deleted": "string",
"pgaType": "ods",
"name": "Example"
}List an entry's tariff rows
https://api.tarifflo.com/api/v2/entries/{efid}/tariff-rowsRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Query parameters
initPathstring
Responses
200Successful response
application/json
linesobject[]requiredEmpty when the entry has no line items. Fill a row like any other section: whats_left / set_fields on its handle.
2 fields per item
handlestringrequiredrowsobject[]required7 fields per item
handlestringrequiredkindstringrequiredmain: the line's classification (Chapter 1-97). ch98 / ch99 / sub: stacked under the main row above it.
One ofmainch98ch99subhtsNumberstringsequencenumbervalueOfGoodsAmountnumberdutyAmountnumbersuppressedbooleanrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/tariff-rows" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"lines": [
{
"handle": "string",
"rows": [
{
"handle": "string",
"kind": "main",
"htsNumber": "8471.30.0100",
"sequence": 100,
"valueOfGoodsAmount": 1000,
"dutyAmount": 100,
"suppressed": true
}
]
}
]
}Delete a tariff row
https://api.tarifflo.com/api/v2/entries/{efid}/tariff-rows/{tariffRowKey}Requires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1tariffRowKeystringrequiredThe row, by handle ('L1.R2').
min length 1
Responses
200Successful response
application/json
Deleted with any subs and PGAs under it. Later rows on the line moved up one handle.
deletedstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X DELETE "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/tariff-rows/string" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"deleted": "string"
}Describe an entry field
https://api.tarifflo.com/api/v2/entry-fields/{path}Requires the API key scope filing.
ApiKeyorBearerPath parameters
pathstringrequiredPlain graph path, e.g. 'shipping.pscReasonCodes.reasonCode' or 'nhtsa.hs7Box' — no handles, indices or ids.
min length 1
Responses
200Successful response
application/json
pathstringrequiredThe graph path that resolved.
foundbooleanrequiredshapestringThe value's shape in shorthand:
str≤35 UPPERCASE,int 0–99,date YYYY-MM-DD, orcode(pick one ofcodes).guidancestringFiling guidance on this field.
containerobjectFiling guidance from the nearest containing node that carries it.
2 fields
pathstringrequiredinfostringrequired
codesobject[]The allowed codes with their meanings. Write one of these values; never guess a code.
2 fields per item
valuestringrequireddescriptionstringrequired
notestringWhy the field was not found, and the paths it may have meant.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entry-fields/string" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"path": "string",
"found": true,
"shape": "string",
"guidance": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"container": {
"path": "string",
"info": "string"
},
"codes": [
{
"value": "string",
"description": "Laptop computer, 14 inch"
}
],
"note": "string"
}Validate an entry or one section
https://api.tarifflo.com/api/v2/entries/{efid}/validateRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredThe entry summary's efid.
min length 1
Request body
application/json
initPathstringOptional: 'shipping' or a handle ('L1', 'L1.R1', 'L1.R1.nhtsa').
Responses
200Successful response
application/json
errorCountnumberrequired0: it validates clean.
errorsmap<string, string>requiredField path (by handle) → error message.
awaitingCbpnumberrequiredFields still waiting on an answer from CBP. Non-zero: call validate again for the final verdict.
sectionobjectThe validated section, when
initPathnamed one.8 fields
sectionstringrequiredThe section's handle ('shipping', 'L1', 'L1.R1', 'L1.R1.nhtsa'); every path below is relative to it.
requiredstring[]requiredRequired fields still empty. Conditional fields appear as their triggers fill, so read the section again after each round of writes.
optionalstring[]Optional fields still empty; listed only when asked for.
datamap<string, object>The values the section already holds; empty fields are left out.
errorsmap<string, string>Field path → error message.
warningsmap<string, string[]>Field path → advisories; never blocking.
editedByOthersmap<string, string>Fields another editor last wrote (who, how long ago). Treat a user's edit as intended — never change one back; if it blocks the filing, ask the user.
notestringSet when someone outside this session changed the entry since you last looked: re-read before writing.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/validate" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"initPath": "string"
}'{
"errorCount": 1,
"errors": {
"key": "string"
},
"awaitingCbp": 100,
"section": {
"section": "string",
"required": [
"string"
],
"optional": [
"string"
],
"data": {
"key": {}
},
"errors": {
"key": "string"
},
"warnings": {
"key": [
"string"
]
},
"editedByOthers": {
"key": "string"
},
"note": "string"
}
}Delete an entry
https://api.tarifflo.com/api/v2/entries/{efid}Requires the API key scope entries:write.
ApiKeyorBearerPath parameters
efidstringrequired
Responses
200Successful response
application/json
idstringrequiredmessagestringrequiredOne ofSuccessfully deletedRequest to delete sent to CBP
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X DELETE "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"message": "Successfully deleted"
}Get CBP's entry summary response for an entry
https://api.tarifflo.com/api/v2/entries/{efid}/responsesRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredmin length 1
Responses
200Successful response
application/json
dispositionobject | nullrequired2 options
Any of
1.objectgroupReferenceobjectrequired3 fields
dataTypestringrequiredcontentstringpositionnumber
responseobjectrequired8 fields
dispositionTypestringseverityCodestringconditionCodestringrequireddescriptionstringrequiredfilerCodestringentryNumbernumberentryVersionnumberreferenceNumberstring
2.nullconditionsobject[]required2 fields per item
referencePathobject[]required3 fields per item
dataTypestringrequiredcontentstringpositionnumber
responsesobject[]required8 fields per item
dispositionTypestringseverityCodestringconditionCodestringrequireddescriptionstringrequiredfilerCodestringentryNumbernumberentryVersionnumberreferenceNumberstring
hasInternalErrorbooleanrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/responses" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"disposition": {
"groupReference": {
"dataType": "string",
"content": "string",
"position": 100
},
"response": {
"dispositionType": "string",
"severityCode": "string",
"conditionCode": "string",
"description": "Laptop computer, 14 inch",
"filerCode": "string",
"entryNumber": 1,
"entryVersion": 100,
"referenceNumber": "string"
}
},
"conditions": [
{
"referencePath": [
{
"dataType": "string",
"content": "string",
"position": 100
}
],
"responses": [
{
"dispositionType": "string",
"severityCode": "string",
"conditionCode": "string",
"description": "Laptop computer, 14 inch",
"filerCode": "string",
"entryNumber": 1,
"entryVersion": 100,
"referenceNumber": "string"
}
]
}
],
"hasInternalError": true
}Get CBP's cargo release response for an entry
https://api.tarifflo.com/api/v2/entries/{efid}/cargo-releaseRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredmin length 1
Responses
200Successful response
application/json
Any of
dispositionobjectrequired3 fields
messageTypeCodestringrequiredstatusstringrequiredOne ofDRAFTAWAITING CBPAPPROVEDDENIEDWARNINGINFOINTERNAL ERRORdescriptionstringrequired
conditionGroupsobject[]required2 fields per item
referencePathobject[]required3 fields per item
dataTypestringrequiredcontentstringpositionnumber
responsesobject[]required6 fields per item
messageTypeCodestringrequiredmessageIdentifierCodestringrequirednarrativeMessagestringrequiredactionDatestringactionTimestringreleaseDatestring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/cargo-release" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"disposition": {
"messageTypeCode": "string",
"status": "DRAFT",
"description": "Laptop computer, 14 inch"
},
"conditionGroups": [
{
"referencePath": [
{
"dataType": "string",
"content": "string",
"position": 100
}
],
"responses": [
{
"messageTypeCode": "string",
"messageIdentifierCode": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"narrativeMessage": "string",
"actionDate": "2026-01-15",
"actionTime": "string",
"releaseDate": "2026-01-15"
}
]
}
]
}Get CBP's ISF response for an entry
https://api.tarifflo.com/api/v2/entries/{efid}/isfRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredmin length 1
Responses
200Successful response
application/json
Any of
dispositionobjectrequired4 fields
messageTypeCodestringrequiredstatusstringrequiredOne ofDRAFTAWAITING CBPAPPROVEDDENIEDWARNINGINTERNAL ERRORdescriptionstringrequiredisfTransactionNumberstring
conditionGroupsobject[]required2 fields per item
referencePathobject[]required3 fields per item
dataTypestringrequiredcontentstringpositionnumber
responsesobject[]required3 fields per item
messageTypeCodestringrequiredmessageIdentifierCodestringrequirednarrativeMessagestringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/isf" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"disposition": {
"messageTypeCode": "string",
"status": "DRAFT",
"description": "Laptop computer, 14 inch",
"isfTransactionNumber": "string"
},
"conditionGroups": [
{
"referencePath": [
{
"dataType": "string",
"content": "string",
"position": 100
}
],
"responses": [
{
"messageTypeCode": "string",
"messageIdentifierCode": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"narrativeMessage": "string"
}
]
}
]
}List CBP batch rejects against an entry
https://api.tarifflo.com/api/v2/entries/{efid}/batch-errorsRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredmin length 1
Responses
200Successful response
application/json
idstringrequiredshortJobIdstringrequiredappIdCodestringconditionsobject[]required7 fields per item
idstringrequiredseverityCodestringrequiredconditionCodestringrequirednarrativeTextstringrequiredreferenceTypestringreferenceOccurrencenumberreferenceTextstring
receivedAtstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/batch-errors" \
-H "X-API-Key: $TARIFFLO_API_KEY"[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"appIdCode": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"conditions": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"severityCode": "string",
"conditionCode": "string",
"narrativeText": "string",
"referenceType": "string",
"referenceOccurrence": 100,
"referenceText": "string"
}
],
"receivedAt": "string"
}
]List CBP status notifications for an entry
https://api.tarifflo.com/api/v2/entries/{efid}/notificationsRequires the API key scope filing.
ApiKeyorBearerPath parameters
efidstringrequiredmin length 1
Responses
200Successful response
application/json
idstringrequiredentryNumberstringrequiredfilerCodestringrequiredreceivedAtstringrequireddispositionTypeCodestringrequirednotificationReasonCodestringrequireddateOfActionstringlineItemIdentifierstringrequiredremarksTextstringrequiredcbpUserstringrequiredtelephoneNumberstringrequiredtelephoneExtensionNumberstringrequiredactionIdentificationNumberstringrequiredquotaLinesobject[]required8 fields per item
idstringrequiredlineItemIdentifierstringrequiredstatusCodestringrequiredstatusDescriptionstringrequiredrequestedQuantitynumberrequestedUomstringrequiredreservedQuantitynumberreservedUomstringrequired
pgaStatusesobject[]required10 fields per item
idstringrequiredagencyCodestringrequiredprogramCodestringrequiredentryLevelStatusCodestringrequiredentryLevelStatusMessagestringrequiredlineLevelStatusCodestringrequiredstatusReasonCodestringrequiredlineRangestringactionAtstringcommentsstring[]required
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/notifications" \
-H "X-API-Key: $TARIFFLO_API_KEY"[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": "string",
"filerCode": "string",
"receivedAt": "string",
"dispositionTypeCode": "string",
"notificationReasonCode": "string",
"dateOfAction": "2026-01-15",
"lineItemIdentifier": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"remarksText": "string",
"cbpUser": "string",
"telephoneNumber": "string",
"telephoneExtensionNumber": "string",
"actionIdentificationNumber": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"quotaLines": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"lineItemIdentifier": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"statusCode": "string",
"statusDescription": "Laptop computer, 14 inch",
"requestedQuantity": 12,
"requestedUom": "string",
"reservedQuantity": 2,
"reservedUom": "string"
}
],
"pgaStatuses": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"agencyCode": "string",
"programCode": "string",
"entryLevelStatusCode": "string",
"entryLevelStatusMessage": "string",
"lineLevelStatusCode": "string",
"statusReasonCode": "string",
"lineRange": "string",
"actionAt": "string",
"comments": [
"string"
]
}
]
}
]Set or clear an entry's importer
https://api.tarifflo.com/api/v2/entries/{efid}/importerRequires the API key scope entries:write.
ApiKeyorBearerPath parameters
efidstringrequiredmin length 1
Request body
application/json
importerIdstring | nullrequired
Responses
200Successful response
application/json
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/importer" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"importerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}'{}Search the organization's entry summaries
https://api.tarifflo.com/api/v2/entries/searchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
startRownumberrequiredFirst row to return, from 0.
endRownumberrequiredRow to stop before (exclusive).
allFilersbooleanShow every filer's entries, not only the session filer's.
filterModelobjectAG Grid filter model:
status/typetakevalues,entryNumbertakesfilter.3 fields
statusobject2 fields
filterTypestringOne ofsetnumbertextvaluesstring[]
typeobject2 fields
filterTypestringOne ofsetnumbertextvaluesstring[]
entryNumberobject3 fields
filterTypestringOne ofsetnumbertexttypestring"equals" (default) or "startsWith".
filterstringThe entry number or its leading digits.
Responses
200Successful response
application/json
rowsobject[]required17 fields per item
idstringrequiredversionIdstringrequiredheaderIdstringorganizationIdstringrequiredentryNumbernumbersubmittedAtstringimporterNamestringtotalValuenumbertotalDutynumberproductsnumberstatusstringrequiredOne of 18 values
DRAFTAWAITING CBPAPPROVEDDENIEDWARNINGPGA WARNINGINFOINTERNAL ERRORUNKNOWNCBP CONTROLLEDDOCUMENTS REQUESTEDDOCUMENTS RECEIVEDINACTIVATEDCANCELLEDPSC REVERTEDTIB DENIEDPGA UPDATELIQUIDATEDnumActionItemsnumberrequiredtypestringbrokerReferenceNumberstringinternalNamestringcbpSourcedbooleanisLatestboolean
totalnumber
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/search" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"startRow": 100,
"endRow": 100
}'{
"rows": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"versionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"headerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"organizationId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": 1,
"submittedAt": "string",
"importerName": "Example",
"totalValue": 1,
"totalDuty": 1,
"products": 100,
"status": "DRAFT",
"numActionItems": 100,
"type": "string",
"brokerReferenceNumber": "string",
"internalName": "Example",
"cbpSourced": true,
"isLatest": true
}
],
"total": 1
}List every version of an entry
https://api.tarifflo.com/api/v2/entries/{versionId}/versionsRequires the API key scope filing.
ApiKeyorBearerPath parameters
versionIdstringrequiredmin length 1
Responses
200Successful response
application/json
idstringrequiredversionIdstringrequiredheaderIdstringorganizationIdstringrequiredentryNumbernumbersubmittedAtstringimporterNamestringtotalValuenumbertotalDutynumberproductsnumberstatusstringrequiredOne of 18 values
DRAFTAWAITING CBPAPPROVEDDENIEDWARNINGPGA WARNINGINFOINTERNAL ERRORUNKNOWNCBP CONTROLLEDDOCUMENTS REQUESTEDDOCUMENTS RECEIVEDINACTIVATEDCANCELLEDPSC REVERTEDTIB DENIEDPGA UPDATELIQUIDATEDnumActionItemsnumberrequiredtypestringbrokerReferenceNumberstringinternalNamestringcbpSourcedbooleanisLatestboolean
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/versions" \
-H "X-API-Key: $TARIFFLO_API_KEY"[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"versionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"headerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"organizationId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": 1,
"submittedAt": "string",
"importerName": "Example",
"totalValue": 1,
"totalDuty": 1,
"products": 100,
"status": "DRAFT",
"numActionItems": 100,
"type": "string",
"brokerReferenceNumber": "string",
"internalName": "Example",
"cbpSourced": true,
"isLatest": true
}
]Create a new entry from an existing one
https://api.tarifflo.com/api/v2/entries/{efid}/copiesRequires the API key scope entries:write.
ApiKeyorBearerPath parameters
efidstringrequiredmin length 1
Responses
200Successful response
application/json
shippingobjectrequired1 field
idstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/copies" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"shipping": {
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}
}Open a new draft version of an entry
https://api.tarifflo.com/api/v2/entries/{efid}/draftsRequires the API key scope entries:write.
ApiKeyorBearerPath parameters
efidstringrequiredmin length 1
Responses
200Successful response
application/json
efidstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/01a19e37-837d-7c16-9a5d-3bef820fcff7/drafts" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}4 endpoints
Audit
Pre-audit document runs: get upload URLs, start a run, poll for the result.
Get an audit upload URL
https://api.tarifflo.com/api/v2/audit/uploadsA presigned PUT URL for one document. PUT the bytes, then start a run with the returned fileId.
Requires the API key scope audit.
ApiKeyorBearerRequest body
application/json
filenamestringrequiredPDF, Excel, Word, CSV or an image; the type is checked again from the bytes.
min length 1max length 500mimeTypestringrequiredmin length 1max length 200
Responses
200Successful response
application/json
fileIdstringrequiredPass it in
fileIdswhen starting the run.uploadUrlstringrequiredPUT the file's bytes here, with the declared
mimeTypeas Content-Type.expiresInSecondsnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/audit/uploads" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"filename": "Example",
"mimeType": "string"
}'{
"fileId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"uploadUrl": "https://example.com/webhooks/tarifflo",
"expiresInSeconds": 100
}Get many audit upload URLs
https://api.tarifflo.com/api/v2/audit/uploads/bulkPresigned PUT URLs for up to 50 documents; one unsupported file type refuses the whole call.
Requires the API key scope audit.
ApiKeyorBearerRequest body
application/json
filesobject[]requiredmin items 1max items 502 fields per item
filenamestringrequiredPDF, Excel, Word, CSV or an image; the type is checked again from the bytes.
min length 1max length 500mimeTypestringrequiredmin length 1max length 200
Responses
200Successful response
application/json
uploadsobject[]required3 fields per item
fileIdstringrequiredPass it in
fileIdswhen starting the run.uploadUrlstringrequiredPUT the file's bytes here, with the declared
mimeTypeas Content-Type.expiresInSecondsnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/audit/uploads/bulk" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"files": [
{
"filename": "Example",
"mimeType": "string"
}
]
}'{
"uploads": [
{
"fileId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"uploadUrl": "https://example.com/webhooks/tarifflo",
"expiresInSeconds": 100
}
]
}Start a pre-audit run
https://api.tarifflo.com/api/v2/audit/runsFiles the uploaded documents under a fresh audit request and runs the pre-audit (ingest, classification, rate and savings). Answers 202 with the run id; the result is delivered as a pre_audit.completed webhook to the key environment's URL (or Tarifflo-Webhook-Url) and pollable at GET /audit/runs/{jobId}. config: "post" (PSC) is not available yet.
Requires the API key scope audit.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
configstringrequiredOne ofprepostfileIdsstring[]requiredmin items 1max items 50clientNamestringThe audit client to file under (default "API Intake").
min length 1max length 200requestNamestringmin length 1max length 200destinationCountriesstring[]Markets to rate for (default US).
dryRunbooleanPrice the request at the organization's card and reserve nothing; answers 200 with the estimate.
Responses
202Queued (or, for dryRun, priced with 200)
application/json
Any of
jobIdstringrequiredThe run id: poll GET /audit/runs/{jobId}.
creditsobjectWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"queued"requiredconfig"pre"requiredfilesQueuednumberrequiredmessagestringrequired
dryRuntruerequiredestimatedCreditsnumberrequiredlinesobject[]required3 fields per item
actionstringrequiredOne of 16 values
rate_lookupadcvd_screenpga_applicabilitycode_classifiedexport_controlorigin_determinationentry_filedentry_prepareddocument_ocrdocument_extractdocument_sortproduct_enrichentry_reviewrationale_documentaudit_parsedata_exportunitsnumberrequiredcreditsnumberrequired
balancenumberrequiredunitstringrequiredOne oftokencreditnotestring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
501config: "post" is not available yet
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_IMPLEMENTEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/audit/runs" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"config": "pre",
"fileIds": [
"01a19e37-837d-7c16-9a5d-3bef820fcff7"
]
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "audit_parse",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "queued",
"config": "pre",
"filesQueued": 1,
"message": "string"
}Get a pre-audit run
https://api.tarifflo.com/api/v2/audit/runs/{jobId}The run's status; once complete, data is the pre_audit.completed webhook's data.
Requires the API key scope audit.
ApiKeyorBearerPath parameters
jobIdstringrequired
Responses
200Successful response
application/json
Any of
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedstagesCompletenumberrequiredstagesTotalnumberrequiredcreditsNeedednumberCredits the run waits for (
blockedonly).purchaseUrlstringWhere to add credits (
blockedonly).
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredeventstringrequiredThe webhook event that delivered the same
data.dataobjectrequiredThe run's result, exactly the webhook's
data.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/audit/runs/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "audit_parse",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "failed",
"error": {
"code": "RUN_FAILED",
"message": "string"
}
}4 endpoints
Billing
Prices, credit balance and settled usage.
Get the price list
https://api.tarifflo.com/api/v2/pricingCredits per unit for every billable action at list price. Public: needs no key.
Responses
200Successful response
application/json
creditCentsnumberrequiredWhat one credit costs, in US cents.
actionsobject[]required5 fields per item
actionstringrequiredOne of 16 values
rate_lookupadcvd_screenpga_applicabilitycode_classifiedexport_controlorigin_determinationentry_filedentry_prepareddocument_ocrdocument_extractdocument_sortproduct_enrichentry_reviewrationale_documentaudit_parsedata_exportunitstringrequiredcreditsnumberrequiredlistCreditsnumberrequiredusdnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/pricing" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"creditCents": 100,
"actions": [
{
"action": "rate_lookup",
"unit": "string",
"credits": 100,
"listCredits": 100,
"usd": 100
}
]
}Get the credit balance
https://api.tarifflo.com/api/v2/creditsThe organization's balance, the current cycle's allowance and what each action consumed this cycle. Any valid API key.
ApiKeyorBearerResponses
200Successful response
application/json
unitstringrequiredAlways "credit": every amount here is presented in credits, whatever the ledger counts in.
One oftokencreditbalancenumberrequiredreservednumberrequiredHeld by running work.
usednumberrequiredfloornumberrequiredcurrentCycleobject | nullrequired2 options
Any of
1.objectstartstringrequiredendstring | nullrequiredallowancenumberrequiredconsumednumberrequired
2.nullperActionobject[]required3 fields per item
actionstringrequiredunitsnumberrequiredcreditsnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/credits" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"unit": "credit",
"balance": 100,
"reserved": 2,
"used": 0,
"floor": 100,
"currentCycle": {
"start": "string",
"end": "string",
"allowance": 100,
"consumed": 100
},
"perAction": [
{
"action": "string",
"units": 100,
"credits": 100
}
]
}Get the credit balance and this organization's prices
https://api.tarifflo.com/api/v2/credits/pricesThe balance, the current cycle's consumption per action, and the price list at this organization's prices.
Requires the API key scope classifications.
ApiKeyorBearerResponses
200Successful response
application/json
summaryobjectrequired7 fields
unitstringrequiredAlways "credit": every amount here is presented in credits, whatever the ledger counts in.
One oftokencreditbalancenumberrequiredreservednumberrequiredHeld by running work.
usednumberrequiredfloornumberrequiredcurrentCycleobject | nullrequired2 options
Any of
1.objectstartstringrequiredendstring | nullrequiredallowancenumberrequiredconsumednumberrequired
2.nullperActionobject[]required3 fields per item
actionstringrequiredunitsnumberrequiredcreditsnumberrequired
pricesobjectrequiredThis organization's prices:
creditsis what it pays per unit,listCreditsthe list price.2 fields
creditCentsnumberrequiredWhat one credit costs, in US cents.
actionsobject[]required5 fields per item
actionstringrequiredOne of 16 values
rate_lookupadcvd_screenpga_applicabilitycode_classifiedexport_controlorigin_determinationentry_filedentry_prepareddocument_ocrdocument_extractdocument_sortproduct_enrichentry_reviewrationale_documentaudit_parsedata_exportunitstringrequiredcreditsnumberrequiredlistCreditsnumberrequiredusdnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/credits/prices" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"summary": {
"unit": "credit",
"balance": 100,
"reserved": 2,
"used": 0,
"floor": 100,
"currentCycle": {
"start": "string",
"end": "string",
"allowance": 100,
"consumed": 100
},
"perAction": [
{
"action": "string",
"units": 100,
"credits": 100
}
]
},
"prices": {
"creditCents": 100,
"actions": [
{
"action": "rate_lookup",
"unit": "string",
"credits": 100,
"listCredits": 100,
"usd": 100
}
]
}
}Get settled usage
https://api.tarifflo.com/api/v2/usageSettled usage between from and to (ISO dates; default the last 30 days, at most a year), grouped by action, key, user or run.
Any valid API key.
ApiKeyorBearerQuery parameters
groupBystringOne ofactionkeyuserrunfromstringtostringlimitstring
Responses
200Successful response
application/json
fromstringrequiredtostringrequiredgroupBystringrequiredOne ofactionkeyuserrununitstringrequiredAlways "credit": every amount here is presented in credits, whatever the ledger counts in.
One oftokencreditrowsobject[]required4 fields per item
keystring | nullrequiredunitsnumberrequiredcreditsnumberrequiredlistCreditsnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/usage" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"from": "string",
"to": "string",
"groupBy": "action",
"unit": "token",
"rows": [
{
"key": "string",
"units": 100,
"credits": 100,
"listCredits": 100
}
]
}6 endpoints
Classification
Classify one product to each destination, or many products in a batch, and poll for the result.
Classify a product
https://api.tarifflo.com/api/v2/classificationsClassifies one product to a code in each destination: the US HTS code is computed first, then mapped to the other destinations. Answers 202 with the job id; the result is delivered as a classification.completed webhook to the key environment's URL (or Tarifflo-Webhook-Url) and pollable at GET /classifications/{jobId}. When the classifier needs more information, the poll answers needs_info with its questions.
Requires the API key scope classifications.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
namestringProduct name; echoed back as
productNameon the result.min length 3max length 200descriptionstringrequiredWhat the product is: materials, function, how it is sold. The more specific, the better the code.
min length 10max length 2000partialHtsCodestringA known heading (4 digits) or subheading (6 digits) that constrains the result.
pattern: ^(\d{4}|\d{6})$destinationsstring[]requiredImport countries, ISO-3166 alpha-2. The US code is computed first, then mapped to the others.
min items 1max items 10folderPathstring[]Product-grid folder for the created products, as folder names below the root (created when absent), e.g. ["Imports", "2026"]. Omitted: the root folder.
max items 10dryRunbooleanPrice the request at the organization's card and reserve nothing; answers 200 with the estimate.
Responses
202Queued (or, for dryRun, priced with 200)
application/json
Any of
jobIdstringrequiredThe job id: poll GET /classifications/{jobId}.
creditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"queued"requireddestinationsQueuednumberrequiredmessagestringrequired
dryRuntruerequiredestimatedCreditsnumberrequiredlinesobject[]required3 fields per item
actionstringrequiredOne of 16 values
rate_lookupadcvd_screenpga_applicabilitycode_classifiedexport_controlorigin_determinationentry_filedentry_prepareddocument_ocrdocument_extractdocument_sortproduct_enrichentry_reviewrationale_documentaudit_parsedata_exportunitsnumberrequiredcreditsnumberrequired
balancenumberrequiredunitstringrequiredOne oftokencreditnotestring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/classifications" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "Laptop computer, 14 inch",
"destinations": [
"US"
]
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "code_classified",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "queued",
"destinationsQueued": 1,
"message": "string"
}Get a classification job
https://api.tarifflo.com/api/v2/classifications/{jobId}The job's status. needs_info lists the open questions; once complete, data is the classification.completed webhook's data.
Requires the API key scope classifications.
ApiKeyorBearerPath parameters
jobIdstringrequired
Responses
200Successful response
application/json
Any of
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"needs_info"requiredevent"classification.needs_info"requiredquestionsobject[]requiredThe job is parked on these. Fold the answers into
descriptionand start a new classification.4 fields per item
productNamestringdestinationstringrequiredquestionIdstringrequiredquestionstringrequired
productsQueuednumberrequiredproductsCompletednumberrequired
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredevent"classification.completed"requireddataobjectrequiredThe result, exactly the webhook's
data.1 field
productsobject[]required3 fields per item
productNamestringsetKindstringSet parents only: the set provision the classifications follow.
classificationsobject[]requiredOne row per destination.
10 fields per item
countrystringrequiredcodestringrequiredThe classification code in the destination's tariff (10-digit HTS for US).
goodsstringrequiredrationalestringrequiredunitstringrequiredhsDescriptionstringrequiredeccnstringrequiredeccnReasoningstringrequiredscheduleBstringrequiredfollowUpQuestionsstring[]required
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedfailedproductsQueuednumberrequiredproductsCompletednumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/classifications/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "code_classified",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "needs_info",
"event": "classification.needs_info",
"questions": [
{
"productName": "Example",
"destination": "US",
"questionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"question": "string"
}
],
"productsQueued": 1,
"productsCompleted": 0
}Classify a product and wait for the result
https://api.tarifflo.com/api/v2/classifications/waitStarts a classification like POST /classifications, then waits up to 40 s for it. Answers the finished job, or the job still running with its jobId to poll at GET /classifications/{jobId}.
Requires the API key scope classifications.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
namestringProduct name; echoed back as
productNameon the result.min length 3max length 200descriptionstringrequiredWhat the product is: materials, function, how it is sold. The more specific, the better the code.
min length 10max length 2000partialHtsCodestringA known heading (4 digits) or subheading (6 digits) that constrains the result.
pattern: ^(\d{4}|\d{6})$destinationsstring[]Import countries, ISO-3166 alpha-2. Defaults to ["US"].
max items 10folderPathstring[]Product-grid folder for the created products, as folder names below the root (created when absent), e.g. ["Imports", "2026"]. Omitted: the root folder.
max items 10
Responses
200Successful response
application/json
Where the job stands. complete: data holds one classification per destination; a set carries its components[]. needs_info: answer questions, then call classify again with the answers folded into description. queued / processing / blocked: still running (blocked = waiting for credits, it resumes on its own); call wait_for_work with jobType "classification" and this jobId. failed: tell the user.
Any of
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"needs_info"requiredevent"classification.needs_info"requiredquestionsobject[]requiredThe job is parked on these. Fold the answers into
descriptionand start a new classification.4 fields per item
productNamestringdestinationstringrequiredquestionIdstringrequiredquestionstringrequired
productsQueuednumberrequiredproductsCompletednumberrequired
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredevent"classification.completed"requireddataobjectrequiredThe result, exactly the webhook's
data.1 field
productsobject[]required3 fields per item
productNamestringsetKindstringSet parents only: the set provision the classifications follow.
classificationsobject[]requiredOne row per destination.
10 fields per item
countrystringrequiredcodestringrequiredThe classification code in the destination's tariff (10-digit HTS for US).
goodsstringrequiredrationalestringrequiredunitstringrequiredhsDescriptionstringrequiredeccnstringrequiredeccnReasoningstringrequiredscheduleBstringrequiredfollowUpQuestionsstring[]required
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedfailedproductsQueuednumberrequiredproductsCompletednumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/classifications/wait" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "Laptop computer, 14 inch"
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "code_classified",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "needs_info",
"event": "classification.needs_info",
"questions": [
{
"productName": "Example",
"destination": "US",
"questionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"question": "string"
}
],
"productsQueued": 1,
"productsCompleted": 0
}Classify many products
https://api.tarifflo.com/api/v2/classifications/batchBulk HTS classification of items (inline) or inputKey (an uploaded JSONL file). Answers 202 with the batch id; the results are delivered to the key environment's webhook URL (or Tarifflo-Webhook-Url) and pollable at GET /classifications/batch/{batchId}.
Requires the API key scope classifications.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
itemsobject[]Up to 10000 rows inline;
idis echoed back on each result.max items 100002 fields per item
idstringtextstringrequiredmin length 1
inputKeystringA JSONL file of {id?,text} rows, from POST /classifications/batch/upload-url.
dryRunbooleanPrice the request at the organization's card and reserve nothing; answers 200 with the estimate.
Responses
202Queued (or, for dryRun, priced with 200)
application/json
Any of
jobIdstringrequiredThe batch id: poll GET /classifications/batch/{batchId}.
creditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"queued"requireditemsQueuednumberrequiredmessagestringrequired
dryRuntruerequiredestimatedCreditsnumberrequiredlinesobject[]required3 fields per item
actionstringrequiredOne of 16 values
rate_lookupadcvd_screenpga_applicabilitycode_classifiedexport_controlorigin_determinationentry_filedentry_prepareddocument_ocrdocument_extractdocument_sortproduct_enrichentry_reviewrationale_documentaudit_parsedata_exportunitsnumberrequiredcreditsnumberrequired
balancenumberrequiredunitstringrequiredOne oftokencreditnotestring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
413The file or the row count is over the limit
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYLOAD_TOO_LARGEmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/classifications/batch" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"text": "string"
}
],
"inputKey": "string"
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "code_classified",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "queued",
"itemsQueued": 1,
"message": "string"
}Get a batch upload URL
https://api.tarifflo.com/api/v2/classifications/batch/upload-urlA presigned PUT URL (valid 900 seconds) for a JSONL file of {id?,text} rows. PUT the file, then start the batch with the returned inputKey.
Requires the API key scope classifications.
ApiKeyorBearerRequest body
application/json
filenamestringrequiredmin length 1max length 256
Responses
200Successful response
application/json
uploadUrlstringrequiredinputKeystringrequiredexpiresInSecondsnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/classifications/batch/upload-url" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"filename": "Example"
}'{
"uploadUrl": "https://example.com/webhooks/tarifflo",
"inputKey": "string",
"expiresInSeconds": 100
}Get a classification batch
https://api.tarifflo.com/api/v2/classifications/batch/{batchId}The batch's status and one page (1000 rows, page from 0) of its results once it completes.
Requires the API key scope classifications.
ApiKeyorBearerPath parameters
batchIdstringrequired
Query parameters
pagestring
Responses
200Successful response
application/json
batchIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredstatestringrequiredSUBMITTED, RUNNING, COMPLETED or FAILED; results appear once COMPLETED.
expectedCountnumberrequiredshardsSettlednumberrequiredexpectedShardsnumberrequiredpagenumberrequiredpageSizenumberrequiredresultsobject[]required5 fields per item
idstringrequiredhts10string | nullrequiredconfidencenumber | nullrequiredchosenModelstring | nullrequiredtop5objectrequiredThe top alternatives the classifier weighed.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/classifications/batch/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"batchId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "code_classified",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "string",
"state": "string",
"expectedCount": 1,
"shardsSettled": 100,
"expectedShards": 100,
"page": 0,
"pageSize": 50,
"results": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"hts10": "8471.30.0100",
"confidence": 100,
"chosenModel": "string",
"top5": {}
}
]
}3 endpoints
Export control
Export-control (ECCN) determinations for products.
Determine export-control codes
https://api.tarifflo.com/api/v2/export-controlECCN (or a foreign jurisdiction's control code) for up to 50 products. Answers 202 with the run id; the result is delivered as an export_control.completed webhook to the key environment's URL (or Tarifflo-Webhook-Url) and pollable at GET /export-control/{jobId}.
Requires the API key scope eccn.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
productsobject[]requiredmin items 1max items 505 fields per item
idstringYour correlation id, echoed back on the result line.
max length 200namestringmax length 500descriptionstringrequiredmin length 3max length 5000originstringrequiredCountry of origin, ISO-3166 alpha-2.
pattern: ^[A-Z]{2}$contextstringAnything else the determination should weigh.
max length 5000
folderPathstring[]Product-grid folder for the created products, as folder names below the root (created when absent), e.g. ["Imports", "2026"]. Omitted: the root folder.
max items 10dryRunbooleanPrice the request at the organization's card and reserve nothing; answers 200 with the estimate.
Responses
202Queued (or, for dryRun, priced with 200)
application/json
Any of
jobIdstringrequiredThe run id: poll GET /export-control/{jobId}.
creditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"queued"requiredproductsQueuednumberrequiredmessagestringrequired
dryRuntruerequiredestimatedCreditsnumberrequiredlinesobject[]required3 fields per item
actionstringrequiredOne of 16 values
rate_lookupadcvd_screenpga_applicabilitycode_classifiedexport_controlorigin_determinationentry_filedentry_prepareddocument_ocrdocument_extractdocument_sortproduct_enrichentry_reviewrationale_documentaudit_parsedata_exportunitsnumberrequiredcreditsnumberrequired
balancenumberrequiredunitstringrequiredOne oftokencreditnotestring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/export-control" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"products": [
{
"description": "Laptop computer, 14 inch",
"origin": "CN"
}
]
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "export_control",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "queued",
"productsQueued": 1,
"message": "string"
}Get an export-control run
https://api.tarifflo.com/api/v2/export-control/{jobId}The run's status; once complete, data is the export_control.completed webhook's data.
Requires the API key scope eccn.
ApiKeyorBearerPath parameters
jobIdstringrequired
Responses
200Successful response
application/json
Any of
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedstagesCompletenumberrequiredstagesTotalnumberrequiredcreditsNeedednumberCredits the run waits for (
blockedonly).purchaseUrlstringWhere to add credits (
blockedonly).
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredeventstringrequiredThe webhook event that delivered the same
data.dataobjectrequiredThe run's result, exactly the webhook's
data.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/export-control/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "export_control",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "failed",
"error": {
"code": "RUN_FAILED",
"message": "string"
}
}Determine one product's export-control code and wait for it
https://api.tarifflo.com/api/v2/export-control/waitStarts a determination for one product like POST /export-control, then waits up to 40 s for it. Answers the finished run, or the run still going (or parked for credits) with its jobId to poll at GET /export-control/{jobId}.
Requires the API key scope eccn.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
descriptionstringrequiredWhat the product is (the primary signal).
min length 3max length 5000originstringrequiredCountry of origin, 2-letter ISO-3166 alpha-2 (e.g. CN, DE, US).
pattern: ^[A-Za-z]{2}$namestringOptional short product name.
max length 500contextstringOptional extra detail (end use, materials, specs) — folded into the description.
max length 5000folderPathstring[]Product-grid folder for the created products, as folder names below the root (created when absent), e.g. ["Imports", "2026"]. Omitted: the root folder.
max items 10
Responses
200Successful response
application/json
Where the run stands. complete: data is the determination; a NEEDS_INFO determination carries clarifyingQuestions. queued / processing: still running; call wait_for_work with jobType "eccn" and this jobId. blocked: waiting for creditsNeeded credits; give the user purchaseUrl, the run resumes on its own, then call wait_for_work again. failed: tell the user.
Any of
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedstagesCompletenumberrequiredstagesTotalnumberrequiredcreditsNeedednumberCredits the run waits for (
blockedonly).purchaseUrlstringWhere to add credits (
blockedonly).
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredeventstringrequiredThe webhook event that delivered the same
data.dataobjectrequiredThe run's result, exactly the webhook's
data.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/export-control/wait" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "Laptop computer, 14 inch",
"origin": "CN"
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "export_control",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "failed",
"error": {
"code": "RUN_FAILED",
"message": "string"
}
}2 endpoints
Jobs
Wait for a job
https://api.tarifflo.com/api/v2/jobs/waitWaits up to ~45 s for an async job, then answers where it stands; answers at once when something already needs you. jobType picks the job kind, and the key needs that kind's scope: filing → filing, eccn → eccn, classification → classifications, origin → origin, rate → tariff_rates.
Any valid API key.
ApiKeyorBearerRequest body
application/json
jobTypestringrequiredWhat kind of job jobId names.
One offilingeccnclassificationoriginratejobIdstringThe id the starting tool returned.
Responses
200Successful response
application/json
Where the job stands. A job still queued / processing: wait again with the same jobType and jobId. blocked: waiting for credits; give the user purchaseUrl when present, the run resumes on its own, then wait again.
One of
jobType"filing"requiredsummarystringrequiredStage progress, questions to answer (answer_question, then wait again), entries ready for review (review_link), or why the run stopped: failed, cancelled, blocked on credits or held by Tarifflo (stop and tell the user).
workobjectrequiredThe run's stages, open questions, holds and entries ready for review.
jobType"classification"requiredjobobject | object | objectrequired3 options
Any of
1.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"needs_info"requiredevent"classification.needs_info"requiredquestionsobject[]requiredThe job is parked on these. Fold the answers into
descriptionand start a new classification.4 fields per item
productNamestringdestinationstringrequiredquestionIdstringrequiredquestionstringrequired
productsQueuednumberrequiredproductsCompletednumberrequired
2.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredevent"classification.completed"requireddataobjectrequiredThe result, exactly the webhook's
data.1 field
productsobject[]required3 fields per item
productNamestringsetKindstringSet parents only: the set provision the classifications follow.
classificationsobject[]requiredOne row per destination.
10 fields per item
countrystringrequiredcodestringrequiredThe classification code in the destination's tariff (10-digit HTS for US).
goodsstringrequiredrationalestringrequiredunitstringrequiredhsDescriptionstringrequiredeccnstringrequiredeccnReasoningstringrequiredscheduleBstringrequiredfollowUpQuestionsstring[]required
3.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedfailedproductsQueuednumberrequiredproductsCompletednumberrequired
jobType"rate"requiredjobobject | object | objectrequired3 options
Any of
1.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
2.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredevent"tariff_rate.completed"requireddataobjectrequired{ results: [...] }, one entry per rate in request order, exactly the webhook'sdata.
3.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredLines are still being rated.
One ofqueuedprocessingratesQueuednumberrequiredratesCompletednumberrequired
jobType"eccn"requiredjobobject | object | objectrequired3 options
Any of
1.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
2.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedstagesCompletenumberrequiredstagesTotalnumberrequiredcreditsNeedednumberCredits the run waits for (
blockedonly).purchaseUrlstringWhere to add credits (
blockedonly).
3.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredeventstringrequiredThe webhook event that delivered the same
data.dataobjectrequiredThe run's result, exactly the webhook's
data.
jobType"origin"requiredjobobject | object | objectrequired3 options
Any of
1.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
2.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedstagesCompletenumberrequiredstagesTotalnumberrequiredcreditsNeedednumberCredits the run waits for (
blockedonly).purchaseUrlstringWhere to add credits (
blockedonly).
3.objectjobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredeventstringrequiredThe webhook event that delivered the same
data.dataobjectrequiredThe run's result, exactly the webhook's
data.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/jobs/wait" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobType": "filing"
}'{
"jobType": "filing",
"summary": "string",
"work": {}
}Watch a pipeline run
https://api.tarifflo.com/api/v2/pipeline-runs/watchBlocks up to 100 s and answers as soon as any stage changes state since cursor, or with the active stage's unit counts when nothing moved.
Requires the API key scope filing.
ApiKeyorBearerRequest body
application/json
runIdstringThe pipeline run to watch.
sortSessionIdstringWatch the latest run of a multi-entry upload. A connector upload has none: pass its entrySessionId.
entrySessionIdstringWatch the latest run of this entry.
cursorstringThe cursor the previous watch_run returned; omit on the first call.
Responses
200Successful response
application/json
summarystringrequiredWhat changed since
cursor(on a first call, where the run stands), then the next step. When it reports questions, answer them (list_open_questions → answer_question) before watching again. Stop when the run is finished, failed, cancelled, held or parked for credits.cursorstringrequiredPass it to the next watch_run call with the same id.
runIdstringrequiredrunStatusstringrequiredOne ofrunningblockedcompletefailedcancelledsourceKindstring | nullrequiredsourceRefIdstring | nullrequiredchangedbooleanrequiredFalse when the budget ran out with no stage moving.
transitionsobject[]required4 fields per item
stageKeystringrequiredfromstring | nullrequiredtostringrequiredOne ofpendingrunningfinalizingcomplete_with_openawaiting_gateheldcompletefailedblockedskippedquestionsChangedboolean
finishedbooleanrequiredfailedbooleanrequiredcancelledbooleanrequiredheldstring[]requiredStages held by Tarifflo: only Tarifflo can release them; tell the user.
awaitingGatestring[]requiredawaitingInputstring[]requiredStages with units parked on questions.
parkedstring[]requiredStages parked for credits;
startwhen the run parked before any stage.stagesobject[]required14 fields per item
stageKeystringrequiredstatusstringrequiredOne ofpendingrunningfinalizingcomplete_with_openawaiting_gateheldcompletefailedblockedskippedtotalnumberrequiredBarrier units; 0 until the stage is sealed.
donenumberrequiredUnits finished: completed + failed.
failednumberrequiredawaitingInputnumberrequiredUnits parked on an unanswered question.
gateKeystring | nullrequiredstartedAtstring | nullrequiredcompletedAtstring | nullrequireddurationMsnumber | nullrequirederrorstring | nullrequirednoticestring | nullrequiredcreditsNeedednumber | nullrequiredCredits the stage waits for, when it is parked.
subProgressobjectA sub-step's progress seen live during this call.
3 fields
donenumberrequiredtotalnumberrequiredlabelstring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/pipeline-runs/watch" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"runId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"sortSessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"cursor": "string"
}'{
"summary": "string",
"cursor": "string",
"runId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"runStatus": "running",
"sourceKind": "string",
"sourceRefId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"changed": true,
"transitions": [
{
"stageKey": "string",
"from": "pending",
"to": "pending",
"questionsChanged": true
}
],
"finished": true,
"failed": true,
"cancelled": true,
"held": [
"string"
],
"awaitingGate": [
"string"
],
"awaitingInput": [
"string"
],
"parked": [
"string"
],
"stages": [
{
"stageKey": "string",
"status": "pending",
"total": 1,
"done": 100,
"failed": 100,
"awaitingInput": 100,
"gateKey": "string",
"startedAt": "string",
"completedAt": "string",
"durationMs": 100,
"error": "string",
"notice": "string",
"creditsNeeded": 100,
"subProgress": {
"done": 100,
"total": 1,
"label": "string"
}
}
]
}6 endpoints
Filing agent
Everything waiting on a human in an upload or entry
https://api.tarifflo.com/api/v2/open-questionsRequires the API key scope filing.
ApiKeyorBearerQuery parameters
sortSessionIdstringentrySessionIdstring
Responses
200Successful response
application/json
questionsobject[]requiredEverything waiting on a human. Empty (or only stage_hold) = nothing to answer right now.
7 fields per item
idstringrequiredThe questionId to answer with.
kindstringrequiredstage_hold is not a question: Tarifflo holds that work and only Tarifflo can release it; tell the user.
One ofhitldoctype_reviewsort_groupingcoverageover_coveragecommercial_documentstage_holdpromptstringrequiredWhat is needed, for a person.
blockingbooleanrequiredanswerViastring | nullrequiredanswerShapestringrequiredThe
answerpayload answer_question takes for this question.contextanyrequiredThe answer handles and gate counts; copy it verbatim into answer_question.
holdsobjectrequired6 fields
armedbooleanrequiredliveRunsnumberrequiredheldRunsnumberrequiredidleHeldbooleanrequiredTrue: nothing more happens until Tarifflo releases it; stop waiting and tell the user.
waitingobject[]required3 fields per item
entrySessionIdstringrequiredstageKeystringrequiredreasonstringrequiredOne ofgatequestions
waitingCountnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/open-questions" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"questions": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"kind": "hitl",
"prompt": "string",
"blocking": true,
"answerVia": "filing.answerEntrySessionHitlQuestions",
"answerShape": "string",
"context": {}
}
],
"holds": {
"armed": true,
"liveRuns": 100,
"heldRuns": 100,
"idleHeld": true,
"waiting": [
{
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"stageKey": "string",
"reason": "questions"
}
],
"waitingCount": 1
}
}Answer open questions, many per call
https://api.tarifflo.com/api/v2/open-questions/answersRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
answersobject[]requiredmin items 1max items 1006 fields per item
questionIdstringrequiredkindstringrequiredThe question's kind, copied from list_open_questions.
One ofhitldoctype_reviewsort_groupingcoverageover_coveragecommercial_documentstage_holdanswerobjectThe answer payload, shaped as the question's answerShape describes.
contextmap<string, object>The question's context object, copied verbatim — it carries the answer handles.
sortSessionIdstringThe upload (file_documents returns it).
entrySessionIdstringOne entry of the upload.
sortSessionIdstringThe upload (file_documents returns it).
entrySessionIdstringOne entry of the upload.
Responses
200Successful response
application/json
One outcome per answer, in order. Keep calling wait_for_work; it may ask a smaller question.
answerednumberrequiredAnswers that were taken (every status but refused).
outcomesobject[]required5 fields per item
questionIdstringrequiredokbooleanrequiredstatusstringrequiredrecorded: taken; keep calling wait_for_work. held: taken, but Tarifflo holds the upload before it continues; do not start filing agents. needs_document: cannot be answered; ask the user for the commercial invoice or packing list, then upload_documents (or file_documents) with that file and the entryId. tarifflo_hold: nothing to answer; only Tarifflo can release it, so tell the user it is held by Tarifflo. refused: not taken;
errorsays why.One ofrecordedheldneeds_documenttarifflo_holdrefusederrorstring | nullrequiredresumedJobsnumber | nullrequiredJobs a classifier answer resumed (null when not known).
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/open-questions/answers" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"answers": [
{
"questionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"kind": "hitl"
}
]
}'{
"answered": 100,
"outcomes": [
{
"questionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"ok": true,
"status": "recorded",
"error": "string",
"resumedJobs": 100
}
]
}Recent entry summaries, newest first
https://api.tarifflo.com/api/v2/entries/recentRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
limitnumberentryNumberstring
Responses
200Successful response
application/json
entriesobject[]requiredNewest first. Empty = no entry summary (matching entryNumber, when given) in this organization.
6 fields per item
efidstringrequiredentryNumberstringrequiredfilerCodestringrequiredstatusstring | nullrequiredentrySessionIdstring | nullrequiredisPostSummaryCorrectionbooleanrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entries/recent" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"limit": 100,
"entryNumber": "string"
}'{
"entries": [
{
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": "string",
"filerCode": "string",
"status": "string",
"entrySessionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"isPostSummaryCorrection": true
}
]
}The 7501 extract of an entry's documents
https://api.tarifflo.com/api/v2/entry-sessions/{entrySessionId}/source-docsRequires the API key scope filing.
ApiKeyorBearerPath parameters
entrySessionIdstringrequired
Request body
application/json
lineIndexnumberOmit for the header.
Responses
200Successful response
application/json
lineCountnumberrequiredLines available; lineIndex runs from 0.
extractmap<string, object> | nullrequiredThe header's (or the line's) extract; null when there is none.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/entry-sessions/01a19e37-837d-7c16-9a5d-3bef820fcff7/source-docs" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"lineIndex": 100
}'{
"lineCount": 1,
"extract": {
"key": {}
}
}Report a field the documents cannot answer
https://api.tarifflo.com/api/v2/blocked-fieldsRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
fieldPathstringrequiredquestionstringrequired
Responses
200Successful response
application/json
Recorded. Ask the user this question directly, in your own words. Do not guess a value.
fieldPathstringrequiredquestionstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/blocked-fields" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fieldPath": "string",
"question": "string"
}'{
"fieldPath": "string",
"question": "string"
}The link a person reviews and submits from
https://api.tarifflo.com/api/v2/review-linkRequires the API key scope filing.
ApiKeyorBearerQuery parameters
sortSessionIdstringefidstring
Responses
200Successful response
application/json
urlstringrequiredGive this to the user to review and submit; you never submit.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/review-link" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"url": "https://example.com/webhooks/tarifflo"
}3 endpoints
Origin
Country-of-origin determinations for products.
Determine country of origin
https://api.tarifflo.com/api/v2/originRules-of-origin determinations (non-preferential, marking, FTA-preferential) for up to 5 goods from their bill of materials. Answers 202 with the run id; a run takes minutes. The result is delivered as an origin.completed webhook to the key environment's URL (or Tarifflo-Webhook-Url) and pollable at GET /origin/{jobId}.
Requires the API key scope origin.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
jobsobject[]requiredmin items 1max items 510 fields per item
idstringYour correlation id, echoed back on the result line.
max length 200import_intostringThe importing country (default US).
pattern: ^[A-Za-z]{2}$finished_goodobjectrequired4 fields
descriptionstringrequiredmin length 3max length 5000htsstringmax length 20value_usdnumberex_works_price_usdnumber
country_of_finished_productionstringrequiredpattern: ^[A-Za-z]{2}$claimed_country_of_originstringpattern: ^[A-Za-z]{2}$processingstringWhat is done in the country of finished production.
max length 10000bomobject[]requiredmin items 1max items 2004 fields per item
itemstringrequiredmax length 500htsstringmax length 20originstringrequiredpattern: ^[A-Za-z]{2}$value_usdnumber
automotivemap<string, object>fungible_inventorymap<string, object>qualitystring"ship" (default, the full ensemble) or "screen" (one draft, about half the cost).
One ofshipscreen
folderPathstring[]Product-grid folder for the created products, as folder names below the root (created when absent), e.g. ["Imports", "2026"]. Omitted: the root folder.
max items 10dryRunbooleanPrice the request at the organization's card and reserve nothing; answers 200 with the estimate.
Responses
202Queued (or, for dryRun, priced with 200)
application/json
Any of
jobIdstringrequiredThe run id: poll GET /origin/{jobId}.
creditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"queued"requiredjobsQueuednumberrequiredmessagestringrequired
dryRuntruerequiredestimatedCreditsnumberrequiredlinesobject[]required3 fields per item
actionstringrequiredOne of 16 values
rate_lookupadcvd_screenpga_applicabilitycode_classifiedexport_controlorigin_determinationentry_filedentry_prepareddocument_ocrdocument_extractdocument_sortproduct_enrichentry_reviewrationale_documentaudit_parsedata_exportunitsnumberrequiredcreditsnumberrequired
balancenumberrequiredunitstringrequiredOne oftokencreditnotestring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/origin" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobs": [
{
"finished_good": {
"description": "Laptop computer, 14 inch"
},
"country_of_finished_production": "US",
"bom": [
{
"item": "string",
"origin": "CN"
}
]
}
]
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "origin_determination",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "queued",
"jobsQueued": 1,
"message": "string"
}Get an origin run
https://api.tarifflo.com/api/v2/origin/{jobId}The run's status; once complete, data is the origin.completed webhook's data.
Requires the API key scope origin.
ApiKeyorBearerPath parameters
jobIdstringrequired
Responses
200Successful response
application/json
Any of
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedstagesCompletenumberrequiredstagesTotalnumberrequiredcreditsNeedednumberCredits the run waits for (
blockedonly).purchaseUrlstringWhere to add credits (
blockedonly).
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredeventstringrequiredThe webhook event that delivered the same
data.dataobjectrequiredThe run's result, exactly the webhook's
data.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/origin/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "origin_determination",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "failed",
"error": {
"code": "RUN_FAILED",
"message": "string"
}
}Determine one good's country of origin and wait for it
https://api.tarifflo.com/api/v2/origin/waitStarts one determination like POST /origin (the job's fields at the top level), then waits up to 40 s for it. A run takes minutes, so this usually answers the run still going with its jobId to poll at GET /origin/{jobId}.
Requires the API key scope origin.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
finished_goodobjectrequiredThe finished good:
description(required, be specific), optionalhts,value_usd(needed for RVC/MaxNOM math),ex_works_price_usd.4 fields
descriptionstringrequiredmin length 3max length 5000htsstringmax length 20value_usdnumberex_works_price_usdnumber
bomobject[]requiredBill of materials: every meaningful component/material with its own origin: {item, origin (2-letter ISO), hts?, value_usd?}.
min items 1max items 2004 fields per item
itemstringrequiredmax length 500htsstringmax length 20originstringrequiredpattern: ^[A-Za-z]{2}$value_usdnumber
country_of_finished_productionstringrequiredWhere final production/assembly happens, 2-letter ISO.
pattern: ^[A-Za-z]{2}$import_intostringImporting country, 2-letter ISO. Defaults to US.
pattern: ^[A-Za-z]{2}$claimed_country_of_originstringOptional: the origin the party claims — the engine checks consistency.
pattern: ^[A-Za-z]{2}$processingstringWhat is actually done in the country of final production (operations performed).
max length 10000automotivemap<string, object>Optional USMCA automotive block (RVC averaging / LVC / steel-aluminum inputs).
fungible_inventorymap<string, object>Optional GN 11(f) fungible-inventory block (commingled originating/non-originating inputs).
qualitystring"ship" (default: 3-draft ensemble + verify, deliverable grade) or "screen" (single draft + audit, ~half cost).
One ofshipscreenidstringOptional correlation id echoed back on the result.
max length 200folderPathstring[]Product-grid folder for the created products, as folder names below the root (created when absent), e.g. ["Imports", "2026"]. Omitted: the root folder.
max items 10
Responses
200Successful response
application/json
Where the run stands. complete: data is the determination; a needs_info verdict carries follow_up_questions: refine the job and call find_origin again. queued / processing: still running (a run takes minutes); call wait_for_work with jobType "origin" and this jobId. blocked: waiting for creditsNeeded credits; give the user purchaseUrl, the run resumes on its own, then call wait_for_work again. failed: tell the user.
Any of
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredOne ofqueuedprocessingblockedstagesCompletenumberrequiredstagesTotalnumberrequiredcreditsNeedednumberCredits the run waits for (
blockedonly).purchaseUrlstringWhere to add credits (
blockedonly).
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredeventstringrequiredThe webhook event that delivered the same
data.dataobjectrequiredThe run's result, exactly the webhook's
data.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/origin/wait" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"finished_good": {
"description": "Laptop computer, 14 inch"
},
"bom": [
{
"item": "string",
"origin": "CN"
}
],
"country_of_finished_production": "US"
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "origin_determination",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "failed",
"error": {
"code": "RUN_FAILED",
"message": "string"
}
}3 endpoints
Tariff rates
Total landed duty for HTS lines at an origin, destination and date: base rate, Chapter 99, AD/CVD and fees.
Look up duty rates
https://api.tarifflo.com/api/v2/tariff-ratesTotal landed duty for up to 50 lines: base rate, Chapter 99 overlays (Section 232, 301, IEEPA), AD/CVD deposits and fees, each line at its own origin, destination and date. Answers 202 with the job id; the result is delivered as a tariff_rate.completed webhook to the key environment's URL (or Tarifflo-Webhook-Url) and pollable at GET /tariff-rates/{jobId}. A line that cannot be rated comes back status: "failed" with its reason, so an accepted request never dies silently.
Requires the API key scope tariff_rates.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
ratesobject[]requiredmin items 1max items 5014 fields per item
htsCodestringrequiredHTS code, 4 to 10 digits; dots tolerated.
min length 4max length 20originstringrequiredCountry of origin, ISO-3166 alpha-2.
pattern: ^[A-Z]{2}$destinationstringrequiredImport country, ISO-3166 alpha-2.
pattern: ^[A-Z]{2}$valuenumberCustoms value in the destination's currency; defaults to a notional value.
≥ 0datestringEntry date the rates apply on; defaults to
effectiveDate, else today.pattern: ^\d{4}-\d{2}-\d{2}$metalsobjectSection 232 metal content, as a percentage of the article's value.
3 fields
steelnumber≥ 0≤ 100aluminumnumber≥ 0≤ 100coppernumber≥ 0≤ 100
usContentPercentagenumber≥ 0≤ 100steelCountryOfMeltstringpattern: ^[A-Z]{2}$aluminumCountryOfSmeltstringpattern: ^[A-Z]{2}$uomQuantitiesmap<string, number>Quantities per unit of measure the code reports in, e.g.
{ "kg": 120 }.appliedExclusionsstring[]Chapter 99 exclusion numbers claimed on the line.
chosenSpiCodesstring[]Special program indicators claimed on the line.
setKindstringSet provisions: the article theory the set is rated under.
One ofsinglecomposite_3beo_nomine_highesteo_nomine_eachensemblegri3bgri3cnamed_setassortmentcomponentsobject[]Set provisions: the components the set is rated from, each at its own code.
max items 504 fields per item
codestringrequiredThe component's 10-digit code as if imported alone (dots tolerated).
min length 8max length 13descriptionstringvalueSharenumberFraction of the set's customs value, 0..1.
≥ 0≤ 1quantitynumber≥ 0
effectiveDatestringDefault entry date for every line without its own
date.pattern: ^\d{4}-\d{2}-\d{2}$loadingDatestringDate the goods were loaded; drives in-transit rules.
pattern: ^\d{4}-\d{2}-\d{2}$modeOfTransportstringOne ofoceanairtruckraildryRunbooleanPrice the request at the organization's card and reserve nothing; answers 200 with the estimate.
Responses
202Queued (or, for dryRun, priced with 200)
application/json
Any of
jobIdstringrequiredThe job id: poll GET /tariff-rates/{jobId}.
creditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"queued"requiredratesQueuednumberrequiredmessagestringrequired
dryRuntruerequiredestimatedCreditsnumberrequiredlinesobject[]required3 fields per item
actionstringrequiredOne of 16 values
rate_lookupadcvd_screenpga_applicabilitycode_classifiedexport_controlorigin_determinationentry_filedentry_prepareddocument_ocrdocument_extractdocument_sortproduct_enrichentry_reviewrationale_documentaudit_parsedata_exportunitsnumberrequiredcreditsnumberrequired
balancenumberrequiredunitstringrequiredOne oftokencreditnotestring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/tariff-rates" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rates": [
{
"htsCode": "8471.30.0100",
"origin": "CN",
"destination": "US"
}
]
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "rate_lookup",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "queued",
"ratesQueued": 1,
"message": "string"
}Get a duty-rate job
https://api.tarifflo.com/api/v2/tariff-rates/{jobId}The job's status and progress; once complete, data is the tariff_rate.completed webhook's data.
Requires the API key scope tariff_rates.
ApiKeyorBearerPath parameters
jobIdstringrequired
Responses
200Successful response
application/json
Any of
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredevent"tariff_rate.completed"requireddataobjectrequired{ results: [...] }, one entry per rate in request order, exactly the webhook'sdata.
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredLines are still being rated.
One ofqueuedprocessingratesQueuednumberrequiredratesCompletednumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/tariff-rates/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "rate_lookup",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "failed",
"error": {
"code": "RUN_FAILED",
"message": "string"
}
}Look up duty rates and wait for the result
https://api.tarifflo.com/api/v2/tariff-rates/waitStarts a lookup like POST /tariff-rates, then waits up to 40 s for it. Answers the finished job, or the job still running with its jobId to poll at GET /tariff-rates/{jobId}. Country codes are accepted in either case.
Requires the API key scope tariff_rates.
ApiKeyorBearerHeaders
Idempotency-KeystringRepeats of the same request with the same key answer the first result (72 hours) with
Idempotent-Replayed: true.max length 255
Request body
application/json
ratesobject[]requiredmin items 1max items 5014 fields per item
htsCodestringrequiredHTS code, 4 to 10 digits; dots tolerated.
min length 4max length 20originstringrequiredCountry of origin, ISO-3166 alpha-2.
pattern: ^[A-Za-z]{2}$destinationstringrequiredImport country, ISO-3166 alpha-2.
pattern: ^[A-Za-z]{2}$valuenumberCustoms value in the destination's currency; defaults to a notional value.
≥ 0datestringEntry date the rates apply on; defaults to
effectiveDate, else today.pattern: ^\d{4}-\d{2}-\d{2}$metalsobjectSection 232 metal content, as a percentage of the article's value.
3 fields
steelnumber≥ 0≤ 100aluminumnumber≥ 0≤ 100coppernumber≥ 0≤ 100
usContentPercentagenumber≥ 0≤ 100steelCountryOfMeltstringpattern: ^[A-Z]{2}$aluminumCountryOfSmeltstringpattern: ^[A-Z]{2}$uomQuantitiesmap<string, number>Quantities per unit of measure the code reports in, e.g.
{ "kg": 120 }.appliedExclusionsstring[]Chapter 99 exclusion numbers claimed on the line.
chosenSpiCodesstring[]Special program indicators claimed on the line.
setKindstringSet provisions: the article theory the set is rated under.
One ofsinglecomposite_3beo_nomine_highesteo_nomine_eachensemblegri3bgri3cnamed_setassortmentcomponentsobject[]Set provisions: the components the set is rated from, each at its own code.
max items 504 fields per item
codestringrequiredThe component's 10-digit code as if imported alone (dots tolerated).
min length 8max length 13descriptionstringvalueSharenumberFraction of the set's customs value, 0..1.
≥ 0≤ 1quantitynumber≥ 0
effectiveDatestringDefault entry date for every line without its own
date.pattern: ^\d{4}-\d{2}-\d{2}$loadingDatestringDate the goods were loaded; drives in-transit rules.
pattern: ^\d{4}-\d{2}-\d{2}$modeOfTransportstringOne ofoceanairtruckrail
Responses
200Successful response
application/json
Where the job stands. complete: data.results has one entry per rate line, in request order. queued / processing: still running; call wait_for_work with jobType "rate" and this jobId. failed: error.message says why; tell the user.
Any of
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"failed"requirederrorobjectrequired2 fields
code"RUN_FAILED"requiredmessagestringrequired
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
status"complete"requiredevent"tariff_rate.completed"requireddataobjectrequired{ results: [...] }, one entry per rate in request order, exactly the webhook'sdata.
jobIdstringrequiredcreditsobjectrequiredWhat the job has reserved, used and refunded so far, in credits.
4 fields
actionstring | nullrequiredreservednumberrequiredusednumberrequiredrefundednumberrequired
statusstringrequiredLines are still being rated.
One ofqueuedprocessingratesQueuednumberrequiredratesCompletednumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
402Not enough credits
application/json
errorobjectrequired7 fields
codestringrequiredexample: PAYMENT_REQUIREDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
409The first request with this Idempotency-Key is still filing
application/json
errorobjectrequired7 fields
codestringrequiredexample: CONFLICTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/tariff-rates/wait" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"rates": [
{
"htsCode": "8471.30.0100",
"origin": "CN",
"destination": "US"
}
]
}'{
"jobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"credits": {
"action": "rate_lookup",
"reserved": 2,
"used": 0,
"refunded": 0
},
"status": "failed",
"error": {
"code": "RUN_FAILED",
"message": "string"
}
}1 endpoint
Organizations
The organization a call acts in, and the others it can use
https://api.tarifflo.com/api/v2/organizationsRequires the API key scope filing.
ApiKeyorBearerResponses
200Successful response
application/json
activeOrganizationIdstringrequiredThe organization this call acts in.
switchablebooleanrequiredTrue: call use_organization to act in another. False: this API key is bound to its organization.
organizationsobject[]required3 fields per item
idstringrequirednamestringrequiredactivebooleanrequiredThe one acting now (a live twin shows as its root).
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/organizations" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"activeOrganizationId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"switchable": true,
"organizations": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"active": true
}
]
}8 endpoints
CBP queries
Ask CBP directly: AD/CVD cases, manufacturer IDs, quota, currency, entry summaries, bonds.
Query CBP AD/CVD cases
https://api.tarifflo.com/api/v2/cbp-queries/adcvd-ratesRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
midstringhtsCodestringcaseNumberstringcountryCodestringcompanyCaseStatusstringcustomDatestringcertificationScenariostring
Responses
200Successful response
application/json
shortJobIdstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/cbp-queries/adcvd-rates" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"htsCode": "8471.30.0100",
"caseNumber": "string",
"countryCode": "US",
"companyCaseStatus": "string",
"customDate": "2026-01-15",
"certificationScenario": "string"
}'{
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}Query CBP for a manufacturer (MID)
https://api.tarifflo.com/api/v2/cbp-queries/manufacturerRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
manufacturerIdstringdocumentIdstringdedupeKeystring
Responses
200Successful response
application/json
shortJobIdstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/cbp-queries/manufacturer" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"manufacturerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"documentId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"dedupeKey": "string"
}'{
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}Query CBP census warnings for entries
https://api.tarifflo.com/api/v2/cbp-queries/census-warningsRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
blockHeaderParamsobjectrequired3 fields
processingPortCodestringprocessingFilerCodestringappIdCodestringrequiredOne of 35 values
AEEQSECQREDENEHAHBADAHCWCJCBECFTFZGEKITPSFWPQP$IMACAAAMOQAPESUTERMFQFI
requestedFromDatestringrequestedToDatestringentryNumbersstring[]required
Responses
200Successful response
application/json
shortJobIdstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/cbp-queries/census-warnings" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"blockHeaderParams": {
"appIdCode": "AE"
},
"entryNumbers": [
"string"
]
}'{
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}Query CBP currency conversion
https://api.tarifflo.com/api/v2/cbp-queries/currency-conversionRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
blockHeaderParamsobjectrequired1 field
appIdCodestringrequiredOne of 35 values
AEEQSECQREDENEHAHBADAHCWCJCBECFTFZGEKITPSFWPQP$IMACAAAMOQAPESUTERMFQFI
countryCodestringrequiredmin length 2max length 2currencyCodestringrequiredmin length 3max length 3exchangeRateDatestringrequiredforeignAmountnumberrequired> 0
Responses
200Successful response
application/json
shortJobIdstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/cbp-queries/currency-conversion" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"blockHeaderParams": {
"appIdCode": "AE"
},
"countryCode": "US",
"currencyCode": "USD",
"exchangeRateDate": "2026-01-15",
"foreignAmount": 100
}'{
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}Query CBP quota status
https://api.tarifflo.com/api/v2/cbp-queries/quota-ratesRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
queriesobject[]requiredmin items 1max items 993 fields per item
queryIdstringrequiredmin length 1secondTariffNumberstringcountryCodestringrequiredmin length 1
certificationScenariostring
Responses
200Successful response
application/json
shortJobIdstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/cbp-queries/quota-rates" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"queries": [
{
"queryId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"countryCode": "US"
}
]
}'{
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}Query CBP entry summaries
https://api.tarifflo.com/api/v2/cbp-queries/entry-summaryRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
queryTypestringrequiredOne ofJ1J2includeDetailbooleanentriesobject[]2 fields per item
filerCodestringrequiredmin length 3max length 3entryNumberstringrequiredmin length 1max length 8
criteriaQueryTypeCodestringOne ofAIIDOCRCNPSCLIQNLQEESrequestedFromDateTimestringpattern: ^\d{2}\d{2}\d{2}\d{2}\d{2}\d{2}(AM|PM)$requestedToDateTimestringpattern: ^\d{2}\d{2}\d{2}\d{2}\d{2}\d{2}(AM|PM)$entrySummariesFlag"Y"ftaReconSummariesFlag"Y"otherReconSummariesFlag"Y"drawbackSummariesFlag"Y"dutyDeferralSummariesFlag"Y"collectionBillInfoCodestringOne of123456certificationScenariostring
Responses
200Successful response
application/json
shortJobIdstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/cbp-queries/entry-summary" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"queryType": "J1"
}'{
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}Query CBP importer and bond records
https://api.tarifflo.com/api/v2/cbp-queries/importer-bondRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
importerOfRecordstringrequiredmin length 1importerProfileIdstring
Responses
200Successful response
application/json
shortJobIdstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/cbp-queries/importer-bond" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"importerOfRecord": "string"
}'{
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}Ask CBP to generate a manufacturer ID
https://api.tarifflo.com/api/v2/cbp-queries/midRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
legalNamestringrequiredaddressstringrequiredcityNamestringrequiredcountryCodestringrequiredpostalCodestringrequireddocumentIdstring
Responses
200Successful response
application/json
shortJobIdstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/cbp-queries/mid" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"legalName": "Example",
"address": "string",
"cityName": "Example",
"countryCode": "US",
"postalCode": "string"
}'{
"shortJobId": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}1 endpoint
Census warnings
Page through the organization's census warning overrides
https://api.tarifflo.com/api/v2/census-warning-overrides/searchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
startRowintegerrequiredFirst row of the page (0-based).
≥ 0≤ 9007199254740991endRowintegerrequiredRow after the last one of the page.
≥ 0≤ 9007199254740991filterModelobject1 field
statusobject2 fields
filterTypestringvaluesstring[]Keep only overrides in these statuses.
Responses
200Successful response
application/json
idstringrequiredentryNumbernumber | stringrequiredThe entry number, or "No entry number provided".
lineItemsnumber | null[] | nullrequiredLine numbers the override covers; null when it has no overrides list.
statusstringrequiredThe stored status: DRAFT, SUBMITTED, APPROVED or DENIED.
messagestring | nullcreatedAtstring | nullrequiredupdatedAtstring | nullrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/census-warning-overrides/search" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"startRow": 1,
"endRow": 1
}'[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": 1,
"lineItems": [
100
],
"status": "string",
"message": "string",
"createdAt": "string",
"updatedAt": "2026-01-15"
}
]7 endpoints
Parties
Your filers, importer profiles, manufacturers and other trade parties.
List the organization's importer profiles
https://api.tarifflo.com/api/v2/importer-profilesRequires the API key scope filing.
ApiKeyorBearerResponses
200Successful response
application/json
idstringrequiredimporterNamestringimporterOfRecordstringstatusstringrequiredOne ofDRAFTAWAITING CBPAPPROVEDDENIEDCBP INACTIVECBP VOIDED
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/importer-profiles" \
-H "X-API-Key: $TARIFFLO_API_KEY"[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"importerName": "Example",
"importerOfRecord": "string",
"status": "DRAFT"
}
]Get one of the organization's filers
https://api.tarifflo.com/api/v2/filers/{id}Requires the API key scope filing.
ApiKeyorBearerPath parameters
idstringrequired
Responses
200Successful response
application/json
namestringfilerCodestringportCodestringstartingEntryNumbernumbercheckDigitOffsetnumbernationalPermitbooleanisBrokerbooleanbrokerLicenseNumberstringqualifyingBrokerNamestringdisPocNamestringdisPocEmailstringdisPocPhonestringidstring
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/filers/01a19e37-837d-7c16-9a5d-3bef820fcff7" \
-H "X-API-Key: $TARIFFLO_API_KEY"{
"name": "Example",
"filerCode": "string",
"portCode": "string",
"startingEntryNumber": 1,
"checkDigitOffset": 100,
"nationalPermit": true,
"isBroker": true,
"brokerLicenseNumber": "string",
"qualifyingBrokerName": "Example",
"disPocName": "Example",
"disPocEmail": "ops@example.com",
"disPocPhone": "string",
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}List the organization's filers
https://api.tarifflo.com/api/v2/filersRequires the API key scope filing.
ApiKeyorBearerResponses
200Successful response
application/json
idstringrequirednamestringfilerCodestringportCodestringisBrokerbooleanstartingEntryNumbernumbercheckDigitOffsetnumber
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/filers" \
-H "X-API-Key: $TARIFFLO_API_KEY"[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"name": "Example",
"filerCode": "string",
"portCode": "string",
"isBroker": true,
"startingEntryNumber": 1,
"checkDigitOffset": 100
}
]List the organization's manufacturers
https://api.tarifflo.com/api/v2/trade-parties/manufacturersRequires the API key scope filing.
ApiKeyorBearerResponses
200Successful response
application/json
idstringrequiredlegalNamestringcountryCodestringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
404Not found
application/json
errorobjectrequired7 fields
codestringrequiredexample: NOT_FOUNDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl "https://api.tarifflo.com/api/v2/trade-parties/manufacturers" \
-H "X-API-Key: $TARIFFLO_API_KEY"[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"legalName": "Example",
"countryCode": "US"
}
]Page through the organization's trade parties
https://api.tarifflo.com/api/v2/trade-parties/searchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
startRownumberrequiredendRownumberrequiredsearchTextstring
Responses
200Successful response
application/json
rowDataobject[]required6 fields per item
idstringrequiredlegalNamestringrequiredphonestringrequiredaddressstringrequirederrorstringindividualContactsobject[]4 fields per item
namestringphonestringemailstringrolestring
rowCountnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/trade-parties/search" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"startRow": 100,
"endRow": 100
}'{
"rowData": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"legalName": "Example",
"phone": "string",
"address": "string",
"error": "string",
"individualContacts": [
{
"name": "Example",
"phone": "string",
"email": "ops@example.com",
"role": "string"
}
]
}
],
"rowCount": 1
}Find trade parties by their fields
https://api.tarifflo.com/api/v2/trade-parties/matchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
filtermap<string, object>requiredTrade-party fields to match, e.g. { legalName, countryCode }. Must not be empty.
Responses
200Successful response
application/json
totalMatchednumberrequiredEvery match, not just those returned. 0 = no trade party matches: if the documents name this party, create it with create_entity. Do NOT invent one. More than
resultsholds = the filter is too broad.resultsobject[]requiredAt most 25 matches; use a match's id.
18 fields per item
legalNamestringrequiredabbreviatedNamestringrequiredhasGbibooleanrequiredidentifierstringrequiredidentifierQualifierstringrequiredmanufacturerIdentifierstringrequiredindividualContactsobject[]required4 fields per item
namestringrequiredphonestringrequiredemailstringrequiredrolestringrequired
notesstringrequiredgbiInfoobject[]required3 fields per item
identifierstringrequiredidentifierQualifierstringrequiredpartyTypeDescriptionstringrequired
addressstringrequiredcityNamestringrequiredcountrySubEntityCodestringrequiredpostalCodestringrequiredcountryCodestringrequireddunsNumberstringrequiredfeiNumberstringrequireddeaRegistrationNumberstringrequiredidstringrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/trade-parties/match" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"key": {}
}
}'{
"totalMatched": 1,
"results": [
{
"legalName": "Example",
"abbreviatedName": "Example",
"hasGbi": true,
"identifier": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"identifierQualifier": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"manufacturerIdentifier": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"individualContacts": [
{
"name": "Example",
"phone": "string",
"email": "ops@example.com",
"role": "string"
}
],
"notes": "string",
"gbiInfo": [
{
"identifier": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"identifierQualifier": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"partyTypeDescription": "Laptop computer, 14 inch"
}
],
"address": "string",
"cityName": "Example",
"countrySubEntityCode": "US",
"postalCode": "string",
"countryCode": "US",
"dunsNumber": "string",
"feiNumber": "string",
"deaRegistrationNumber": "string",
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7"
}
]
}Create or update a trade party
https://api.tarifflo.com/api/v2/trade-partiesRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
idstringAn existing trade party's id, to update it.
partymap<string, object>requiredTrade-party fields: legalName, abbreviatedName (≤35, required on name-reporting slots when legalName is longer), address, city, postalCode, countryCode, manufacturerIdentifier, …
isManufacturerbooleanCreate only. True when this party manufactures the goods.
Responses
200Successful response
application/json
idstringrequiredlegalNamestringrequiredcreatedbooleanrequiredWithout id: true = created; false = the party already exists under this id and was NOT changed — use that id, or pass it as
idto update it. With id: always false (updated).
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/trade-parties" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"party": {
"key": {}
}
}'{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"legalName": "Example",
"created": true
}1 endpoint
TIB extensions
Page through the organization's TIB groups
https://api.tarifflo.com/api/v2/tib-extensions/searchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
startRowintegerrequiredFirst row of the page (0-based).
≥ 0≤ 9007199254740991endRowintegerrequiredRow after the last one of the page.
≥ 0≤ 9007199254740991filterModelobject2 fields
statusobject2 fields
filterTypestringvaluesstring[]Keep only TIBs whose latest request is in these statuses.
entryNumberobject3 fields
filterTypestringtypestringfilterstring | number | nullKeep only TIBs whose entry number starts with this.
sortModelobject[]The first entry sorts the rows; default is newest update first.
2 fields per item
colIdstringrequiredOne ofentryNumberstatuscreatedAtupdatedAtexpirationDatesortstringrequiredOne ofascdesc
Responses
200Successful response
application/json
rowsobject[]required15 fields per item
acceptedExtensionsnumberrequiredclosureAcceptedbooleanrequiredextensionDeniedbooleanrequiredopenRequestIdstringThe request id of the group's unfinished request, if it has one.
canExtendbooleanrequiredcanClosebooleanrequiredidstringrequiredfilerCodestringrequiredentryNumbernumberrequiredentryVersionIdstringexpirationDatestringextensionCountnumbercreatedAtstringupdatedAtstringlatestobject11 fields
idstringrequiredrowIdstringrequiredversionnumberrequiredSend attempts: a rejected request fixed and resent is a new version.
kindstring1 = extension, 2 = closure.
One of12portOfEntrystringstatusstringrequiredOne ofDRAFTAPPROVEDAWAITING CBPDENIEDWARNINGINFOINTERNAL ERRORUNKNOWNTIB DENIEDmessagestringsubmittedAtstringcreatedAtstringupdatedAtstringconditionsCountnumberrequired
totalnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/tib-extensions/search" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"startRow": 1,
"endRow": 1
}'{
"rows": [
{
"acceptedExtensions": 100,
"closureAccepted": true,
"extensionDenied": true,
"openRequestId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"canExtend": true,
"canClose": true,
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"filerCode": "string",
"entryNumber": 1,
"entryVersionId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"expirationDate": "2026-01-15",
"extensionCount": 1,
"createdAt": "string",
"updatedAt": "2026-01-15",
"latest": {
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"rowId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"version": 100,
"kind": "1",
"portOfEntry": "string",
"status": "DRAFT",
"message": "string",
"submittedAt": "string",
"createdAt": "string",
"updatedAt": "2026-01-15",
"conditionsCount": 1
}
}
],
"total": 1
}1 endpoint
In-bonds
Page through the organization's in-bonds
https://api.tarifflo.com/api/v2/in-bonds/searchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
startRowintegerrequired≥ 0≤ 9007199254740991endRowintegerrequired≥ 0≤ 9007199254740991filterModelobject2 fields
statusobject2 fields
filterTypestringvaluesstring[]
inBondNumberobject3 fields
filterTypestringtypestringfilterstring | number | null
sortModelobject[]2 fields per item
colIdstringrequiredOne ofinBondNumberstatuscreatedAtupdatedAtsubmittedAtsortstringrequiredOne ofascdesc
Responses
200Successful response
application/json
rowsobject[]required15 fields per item
idstringrequiredrowIdstringrequiredversionnumberrequiredstatusstringrequiredOne ofDRAFTAWAITING CBPACCEPTEDWARNINGPARTIALREJECTEDDELETEDUNKNOWNINTERNAL ERRORonFilebooleanrequiredinBondNumberstringinBondTypestringusPortOfDestinationstringinBondCarrierCodestringbillCountnumberrequiredfilerCodestringshipmentIdstringrequiredsubmittedAtstringcreatedAtstringupdatedAtstring
totalnumberrequired
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/in-bonds/search" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"startRow": 1,
"endRow": 1
}'{
"rows": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"rowId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"version": 100,
"status": "DRAFT",
"onFile": true,
"inBondNumber": "string",
"inBondType": "string",
"usPortOfDestination": "US",
"inBondCarrierCode": "string",
"billCount": 1,
"filerCode": "string",
"shipmentId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"submittedAt": "string",
"createdAt": "string",
"updatedAt": "2026-01-15"
}
],
"total": 1
}1 endpoint
Cargo release
Page through the organization's cargo releases
https://api.tarifflo.com/api/v2/cargo-releases/searchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
startRowintegerrequiredFirst row of the page (0-based).
≥ 0≤ 9007199254740991endRowintegerrequiredRow after the last one of the page.
≥ 0≤ 9007199254740991filterModelobject1 field
statusobject2 fields
filterTypestringvaluesstring[]Keep only cargo releases in these statuses.
Responses
200Successful response
application/json
idstringrequiredThe cargo release's id.
entryFilerCodestringentryNumberstringentryTypestringmodeOfTransportationstringstatusstringrequiredOne ofDRAFTAWAITING CBPAPPROVEDDENIEDWARNINGINFOINTERNAL ERRORestimatedEntryValuenumbercreatedAtstringISO timestamp.
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/cargo-releases/search" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"startRow": 1,
"endRow": 1
}'[
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryFilerCode": "string",
"entryNumber": "string",
"entryType": "string",
"modeOfTransportation": "string",
"status": "DRAFT",
"estimatedEntryValue": 1000,
"createdAt": "string"
}
]1 endpoint
Shipments
Page through the organization's shipments
https://api.tarifflo.com/api/v2/shipments/searchRequires the API key scope filing.
ApiKeyorBearerRequest body
application/json
startRowintegerrequired≥ 0≤ 9007199254740991endRowintegerrequired≥ 1≤ 500entryNumberstringmax length 64
Responses
200Successful response
application/json
rowsobject[]required5 fields per item
idstringrequiredcreatedAtstringrequiredentryobject12 fields
kind"entrySummary"requiredidstringrequiredstatusstringrequireddatestringrequiredheaderIdstringrequiredentryNumberstringentryFilerCodestringentryTypestringimporterNamestringnumActionItemsnumberrequiredcbpSourcedbooleanrequiredhasEntryDatebooleanrequired
countsobjectrequired7 fields
entrySummarynumberrequiredisfnumberrequiredcargoReleasenumberrequiredtibExtensionnumberrequiredcensusWarningOverridenumberrequiredinBondnumberrequiredinBondEventnumberrequired
lastActivityAtstringrequired
totalnumber
400Invalid input data
application/json
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
401Authorization not provided
application/json
errorobjectrequired7 fields
codestringrequiredexample: UNAUTHORIZEDmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
403Insufficient access
application/json
errorobjectrequired7 fields
codestringrequiredexample: FORBIDDENmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
500Internal server error
application/json
errorobjectrequired7 fields
codestringrequiredexample: INTERNAL_SERVER_ERRORmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
curl -X POST "https://api.tarifflo.com/api/v2/shipments/search" \
-H "X-API-Key: $TARIFFLO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"startRow": 1,
"endRow": 1
}'{
"rows": [
{
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"createdAt": "string",
"entry": {
"kind": "entrySummary",
"id": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"status": "string",
"date": "2026-01-15",
"headerId": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"entryNumber": "string",
"entryFilerCode": "string",
"entryType": "string",
"importerName": "Example",
"numActionItems": 100,
"cbpSourced": true,
"hasEntryDate": true
},
"counts": {
"entrySummary": 100,
"isf": 100,
"cargoRelease": 100,
"tibExtension": 100,
"censusWarningOverride": 100,
"inBond": 100,
"inBondEvent": 100
},
"lastActivityAt": "string"
}
],
"total": 1
}12 codes
Errors
Every error response carries the same envelope with the HTTP status that matches its code. Validation errors (400) add issues; entry filing errors add errors with the path of each rejected field.
errorobjectrequired7 fields
codestringrequiredexample: BAD_REQUESTmessagestringrequiredissuesobject[]Input validation issues (400 only)
3 fields per item
codestringmessagestringrequiredpathany[]
errorsobject[]Entry validation errors, by path in the request's
entry2 fields per item
pathstringrequiredexample: lineItems[3].tariffRows[0].htsNumbermessagestringrequired
efidstringThe entry the request wrote before it failed
fieldstringThe field CBP now requires or rejects (
cbp_requirementonly)effectiveDatestringWhen that CBP rule takes effect (
cbp_requirementonly)
| Code | HTTP status |
|---|---|
BAD_REQUEST | 400 |
UNAUTHORIZED | 401 |
PAYMENT_REQUIRED | 402 |
FORBIDDEN | 403 |
NOT_FOUND | 404 |
CONFLICT | 409 |
PRECONDITION_FAILED | 412 |
PAYLOAD_TOO_LARGE | 413 |
UNPROCESSABLE_CONTENT | 422 |
INTERNAL_SERVER_ERROR | 500 |
NOT_IMPLEMENTED | 501 |
BAD_GATEWAY | 502 |
{
"error": {
"code": "BAD_REQUEST",
"message": "string",
"issues": [
{
"code": "string",
"message": "string",
"path": []
}
],
"errors": [
{
"path": "lineItems[3].tariffRows[0].htsNumber",
"message": "string"
}
],
"efid": "01a19e37-837d-7c16-9a5d-3bef820fcff7",
"field": "string",
"effectiveDate": "2026-01-15"
}
}