---
title: "Determine export-control codes"
method: POST
path: "/export-control"
tags: ["Export control"]
---

# Determine export-control codes

`POST /export-control`

## Request

- Base URL: `https://api.tarifflo.com/api/v2`
- URL: `https://api.tarifflo.com/api/v2/export-control`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

ECCN (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`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `products` object[], required
    - `id` string: Your correlation id, echoed back on the result line.
    - `name` string
    - `description` string, required
    - `origin` string, required: Country of origin, ISO-3166 alpha-2.
    - `context` string: Anything else the determination should weigh.
  - `dryRun` boolean: Price the request at the organization's card and reserve nothing; answers 200 with the estimate.

## Response `202`

Queued (or, for `dryRun`, priced with 200)

- union
  - object
    - `jobId` string, required: The run id: poll GET /export-control/{jobId}.
    - `credits` object, required: What the job has reserved, used and refunded so far, in credits.
      - `action` 'rate_lookup' | 'adcvd_screen' | 'pga_applicability' | 'code_classified' | 'export_control' | 'origin_determination' | 'entry_filed' | 'entry_prepared' | 'document_ocr' | 'document_extract' | 'document_sort' | 'product_enrich' | 'entry_review' | 'rationale_document' | 'audit_parse' | 'data_export', nullable, required
      - `reserved` number, required
      - `used` number, required
      - `refunded` number, required
    - `status` 'queued', required
    - `productsQueued` number, required
    - `message` string, required
  - object
    - `dryRun` true, required
    - `estimatedCredits` number, required
    - `lines` object[], required
      - `action` 'rate_lookup' | 'adcvd_screen' | 'pga_applicability' | 'code_classified' | 'export_control' | 'origin_determination' | 'entry_filed' | 'entry_prepared' | 'document_ocr' | 'document_extract' | 'document_sort' | 'product_enrich' | 'entry_review' | 'rationale_document' | 'audit_parse' | 'data_export', required
      - `units` number, required
      - `credits` number, required
    - `balance` number, required
    - `unit` 'token' | 'credit', required
    - `note` string

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `402`: Not enough credits
- `403`: Insufficient access
- `409`: The first request with this Idempotency-Key is still filing
- `500`: Internal server error

---

[API](https://skmtc.dev/tarifflo/apis/tarifflo-api.md) - [All operations](https://skmtc.dev/tarifflo/apis/tarifflo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tarifflo/apis/tarifflo-api/revisions/f048ebac1ac5?raw)
