TariffsTool

Servidor MCP gratuito de tarifas e custo de desembaraço: estimativas de impostos empilhadas de MFN + Seções 232/301/338 por código HTS e origem, consulta de HTS, proibições de importação, mudanças tarifárias e estimativas de reembolso.

Servidor MCP hospedado

npx add-mcp 'https://www.tariffstool.com/api/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

The data behind our calculators, as JSON: current US tariff rates by country and product sector with the current stacking regime applied (Section 301 forced-labor or an EU bilateral ceiling, China Section 301, and Section 232), and a dated feed of tariff-regime changes, plus a landed-cost estimate that uses the same stack as the tariff calculator. The same estimate is available to MCP clients at /api/mcp. Curated static snapshot compiled from the USITC Harmonized Tariff Schedule, USTR Section 301 notices, and presidential proclamations. Not a live USITC feed. Rate tables last verified 2026-10-09. The change log’s newest effective event is 2026-10-18; that date does not by itself revise these tables. Verify binding rates at https://hts.usitc.gov/. No key is required — attribution is the only requirement. An optional free API key identifies who is calling. The human-readable timeline is the tariff change log.

Download the full dataset

Prefer a plain file over the API? Download the whole dataset directly as CSV or JSON — no key, no code, just click. Files are generated from the same curated snapshot as the API (rate tables last verified 2026-10-09; newest effective change-log event 2026-10-18). Attribution to TariffsTool.com is the only requirement.

Country tariff rates

One row per country: base regime, forced-labor tier / ceiling, Section 301 & 232 layers, trade agreement, de minimis.

Rates by country × sector

Effective rate for every country across all 14 product sectors.

Tariff regime changes

Dated feed of every US tariff-regime change since 2025, with sources.

API endpoints

The same snapshot is available as a keyless JSON API. meta.last_updated and meta.rates_last_verified are the rate-table date (2026-10-09). meta.changes_through is the newest effective change-log event (2026-10-18) and does not mean the rates were re-verified that day. meta.ingest is separate:rate_tables.last_ingest is 2026-10-09, usitc_hts.changes_through is Revision 21 (2026), and federal_register.changes_through is 2026-10-19. Ingest apply_policy is propose_only. The review queue on /api/v1/changes (review_queue) is not merged into changes and does not change calculator rates. A source change is proposed within 48 hours when the daily 11:30 UTC ingest succeeds. meta.data_as_of is that destination's last successful fetch, and meta.stale is true when the fetch is missing or older than 48 hours. US and GB are stamped separately. Publishing a rate still waits for a person to review that one change.

1. Rates catalogue

GET https://www.tariffstool.com/api/v1/rates

Lists every country with a full rate profile (41) and every product sector (14).

2. Rates by country

GET https://www.tariffstool.com/api/v1/rates?country=china

{
  "country": { "code": "CN", "name": "China", "slug": "china" },
  "profile": {
    "mfn_avg_pct": 3.4,
    "base": {
      "regime": "section-301-forced-labor",
      "forced_labor_pct": 12.5,
      "legacy_regime": "section-122",
      "section_122_pct": 12.5,
      "note": "Legacy section_122_pct mirrors forced_labor_pct. Section 122 expired 2026-07-24."
    },
    "section_301_pct": 25,
    "section_232_steel_pct": 50,
    "de_minimis_usd": 0,
    ...
  },
  "sector_rates": [
    { "sector": "electronics", "effective_rate_pct": "<calculated>" },
    ...
  ]
}

3. Rate by country + sector

GET https://www.tariffstool.com/api/v1/rates?country=china&sector=electronics

Single effective rate with the breakdown (base, surcharge, notes) and the country profile. A Canada response also includes import_bans: headings 2202, 2203, 2204, 2208, and 8711 with status: "prohibited" and effective_rate_pct: null.

3b. Rate by country + HTS

GET https://www.tariffstool.com/api/v1/rates?country=canada&hts=2208
GET https://www.tariffstool.com/api/v1/rates?country=india&hts=3004.10.1010

Same stacking as the calculator. A banned Canadian heading returns status: "prohibited" and effective_rate_pct: null. A U.S. note 40(c) pharmaceutical line stacks an extra 100% Section 232 layer.

4. Regime-change feed

GET https://www.tariffstool.com/api/v1/changes
GET https://www.tariffstool.com/api/v1/changes?since=2026-06-01
GET https://www.tariffstool.com/api/v1/changes?tag=de-minimis

Dated, curated log of US tariff-regime changes — SCOTUS ruling, Section 122, the EU ceiling, de minimis, CAPE refund milestones — each with status (effective/pending/announced/proposed) and tags. Proposed means a rule has been published for comment and is not in force.

5. Landed cost (for sourcing agents)

POST or GET /api/v1/landed-cost. Pass an HTS code (4–10 digits, dots optional), an origin (ISO country code or a slug from the rates catalogue), and customs_value in USD. Optional mode is ocean, air, truck, or rail — the Harbor Maintenance Fee is estimated only for ocean. Optional freight, insurance, and other_fees are added to the total and are not dutiable (same default as the calculator). quantity is echoed and does not change the math. Codes longer than the heading are passed through, so a listed line matches the calculator (including the 100% patented-pharmaceuticals Section 232 layer). When the calculator marks an import ban, status is prohibited, import_ban is true, and duty, rate, landed cost, MPF, and HMF are null. A layer's citation is copied from the site's Federal Register table for that program and code, or from a program-wide row when the table has one. Otherwise citation is null and citation_status is pending. Responses send Cache-Control: no-store. Anonymous callers are limited to about 60 requests a minute per server instance; a tt_free_ key (a free issued key or a self-issued one of at least 8 characters) sent as x-api-key or Authorization: Bearer gets a higher per-instance limit. Anonymous calls stay open. OpenAPI: /api/v1/openapi.json.

curl -s -X POST https://www.tariffstool.com/api/v1/landed-cost \
  -H 'content-type: application/json' \
  -d '{"hts":"7208","origin":"china","customs_value":10000,"mode":"ocean"}'

China hot-rolled steel (HTS 7208), $10,000, ocean — the same stack the calculator shows for that heading (50% Section 232 + 25% China Section 301 = 75%). Estimate only. Not customs, legal, or tax advice. Verify with a licensed customs broker.

{
  "input": {
    "hts": "7208",
    "hts_title": "Hot-rolled flat products of iron or non-alloy steel",
    "origin": "CN",
    "origin_name": "China",
    "origin_slug": "china",
    "destination_country": "US",
    "customs_value": 10000,
    "mode": "ocean",
    "quantity": null,
    "freight": 0,
    "insurance": 0,
    "other_fees": 0
  },
  "status": "duty",
  "import_ban": false,
  "total_duty": 7500,
  "effective_rate_pct": 75,
  "total_landed_cost": 17547.14,
  "layers": [
    {
      "name": "Section 232 tariff",
      "legal_authority": "Section 232",
      "program": "section-232-steel",
      "rate_pct": 50,
      "amount_usd": 5000,
      "struck_down": false,
      "citation": null,
      "citation_status": "pending",
      "destination_country": "US",
      "rate_type": "ad_valorem",
      "effective_date": null
    },
    {
      "name": "Section 301 tariff (China)",
      "legal_authority": "Section 301",
      "program": "section-301-china",
      "rate_pct": 25,
      "amount_usd": 2500,
      "struck_down": false,
      "citation": {
        "federal_register": "91 FR 64212",
        "document_number": "2026-20510",
        "url": "https://www.federalregister.gov/documents/2026/10/07/2026-20510/continuation-of-actions-chinas-acts-policies-and-practices-related-to-technology-transfer",
        "pdf_url": "https://www.govinfo.gov/content/pkg/FR-2026-10-07/pdf/2026-20510.pdf",
        "effective_date": "2026-07-06",
        "hts": ""
      },
      "citation_status": "cited",
      "destination_country": "US",
      "rate_type": "ad_valorem",
      "effective_date": "2026-07-06"
    },
    {
      "name": "Former IEEPA tariff (was 20%)",
      "legal_authority": "IEEPA",
      "program": "ieepa",
      "rate_pct": 20,
      "amount_usd": 0,
      "struck_down": true,
      "citation": null,
      "citation_status": "pending",
      "destination_country": "US",
      "rate_type": "ad_valorem",
      "effective_date": null
    }
  ],
  "mpf": {
    "amount_usd": 34.64,
    "label": "Estimated MPF (formal entry)",
    "note": "Formal-entry estimate: 0.3464% of customs value, FY2026 floor $33.58 and ceiling $651.50. Qualifying USMCA goods can be MPF-exempt — this estimate does not apply that exemption."
  },
  "hmf": {
    "amount_usd": 12.5,
    "label": "Estimated HMF (ocean, 0.125%)",
    "applies": true
  },
  "note": null,
  "meta": {
    "rates_last_verified": "2026-10-09",
    "changes_through": "2026-10-18",
    "data_source": "curated static snapshot, not a live USITC feed",
    "ingest": {
      "apply_policy": "propose_only",
      "last_ingest": "2026-10-19T17:36:16.223Z",
      "content_hash": "66544dd4004951d086ba6b2f2f663eb17f67dec7d0c79eceeaa7cdb330a31e8f",
      "review_report": "data-review/latest.md",
      "review_queue_count": 13,
      "freshness_target_hours": 48,
      "freshness_note": "Duty changes from USITC, the Federal Register, and the UK Trade Tariff are proposed into the review queue within 48 hours when the daily ingest succeeds. The job runs at 11:30 UTC, so a notice published just after a run is proposed the next day, still inside 48 hours. stale means that destination has no successful source fetch in over 48 hours. Calculator rates change only after a person reviews each proposal.",
      "destinations": [
        {
          "country": "US",
          "adapter_id": "us-usitc-federal-register",
          "status": "ok",
          "last_successful_fetch": "2026-10-19T17:36:16.223Z",
          "attempted_at": "2026-10-19T17:36:16.223Z",
          "sources": [
            {
              "id": "usitc_hts",
              "name": "USITC Harmonized Tariff Schedule export",
              "url": "https://hts.usitc.gov/reststop/exportList"
            },
            {
              "id": "federal_register",
              "name": "Federal Register documents API",
              "url": "https://www.federalregister.gov/api/v1/documents.json"
            }
          ],
          "item_counts": {
            "proposed_change": 0,
            "needs_manual_review": 9,
            "already_reflected": 4
          },
          "content_hash": "66544dd4004951d086ba6b2f2f663eb17f67dec7d0c79eceeaa7cdb330a31e8f",
          "error": null,
          "data_as_of": "2026-10-19T17:36:16.223Z",
          "stale": false,
          "freshness_target_hours": 48
        },
        {
          "country": "GB",
          "adapter_id": "gb-uk-trade-tariff",
          "status": "ok",
          "last_successful_fetch": "2026-10-19T17:36:16.223Z",
          "attempted_at": "2026-10-19T17:36:16.223Z",
          "sources": [
            {
              "id": "uk_trade_tariff",
              "name": "UK Trade Tariff API",
              "url": "https://www.trade-tariff.service.gov.uk/uk/api"
            },
            {
              "id": "uk_customs_tariff_regulations",
              "name": "Customs Tariff (Establishment) (EU Exit) Regulations 2020",
              "url": "https://www.legislation.gov.uk/uksi/2020/1430"
            }
          ],
          "item_counts": {
            "proposed_change": 0,
            "needs_manual_review": 0,
            "already_reflected": 0
          },
          "content_hash": "d70f14e7cdd5175a8b78fdabcb657055c9dd128c4fd9bce450db8f4aff6532ac",
          "error": null,
          "data_as_of": "2026-10-19T17:36:16.223Z",
          "stale": false,
          "freshness_target_hours": 48
        }
      ],
      "rate_tables": {
        "role": "published_rates",
        "source": "curated static snapshot, not a live USITC feed",
        "source_url": "https://hts.usitc.gov/",
        "documentation_url": "https://www.tariffstool.com/about",
        "last_ingest": "2026-10-09",
        "changes_through": "2026-10-18",
        "note": "Published calculator rates. last_ingest here is the rate-table verification date. changes_through is the newest effective curated change-log event. Ingest proposals do not change either value."
      },
      "usitc_hts": {
        "role": "ingest_source",
        "source": "Revision 21 (2026)",
        "source_url": "https://hts.usitc.gov/reststop/exportList",
        "documentation_url": "https://www.usitc.gov/documents/hts/hts_external_user_guide.pdf",
        "last_ingest": "2026-10-19T17:36:16.223Z",
        "changes_through": "Revision 21 (2026)",
        "note": "USITC revision observed by the last successful ingest. It is the source of the review queue, not a published rate change."
      },
      "federal_register": {
        "role": "ingest_source",
        "source": "Federal Register documents API",
        "source_url": "https://www.federalregister.gov/api/v1/documents.json",
        "documentation_url": "https://www.federalregister.gov/developers/documentation/api/v1",
        "last_ingest": "2026-10-19T17:36:16.223Z",
        "changes_through": "2026-10-19",
        "note": "Newest tariff-relevant publication date in the last ingest window. Notices are queued for review and are not applied automatically."
      }
    },
    "data_as_of": "2026-10-19T17:36:16.223Z",
    "stale": false,
    "ingest_status": "ok",
    "freshness_target_hours": 48,
    "freshness_note": "Duty changes from USITC, the Federal Register, and the UK Trade Tariff are proposed into the review queue within 48 hours when the daily ingest succeeds. The job runs at 11:30 UTC, so a notice published just after a run is proposed the next day, still inside 48 hours. stale means that destination has no successful source fetch in over 48 hours. Calculator rates change only after a person reviews each proposal.",
    "api_version": "v1",
    "destination": {
      "code": "US",
      "name": "United States"
    },
    "attribution": "Free to use with attribution: link to https://www.tariffstool.com when displaying this data.",
    "attribution_html": "<a href=\"https://www.tariffstool.com\">Tariff data by Tariffs Tool</a>",
    "docs": "https://www.tariffstool.com/developers",
    "openapi": "https://www.tariffstool.com/api/v1/openapi.json"
  },
  "disclaimer": "Estimate only. Not customs, legal, or tax advice. Verify with a licensed customs broker."
}

6. MCP server

A free remote MCP server for agents. Streamable HTTP. Anonymous calls need no signup. calculate_landed_cost calls the same function as /api/v1/landed-cost, so the duty stack matches the tariff calculator. Anonymous callers share the landed-cost limit of about 60 requests a minute per server instance. An Authorization: Bearer tt_free_… key (issued from the free key page or self-issued: the tt_free_ prefix plus at least 8 letters, numbers, underscores, or hyphens) raises that per-instance limit. The raw key is not logged. Estimate only. Not customs, legal, or tax advice. Verify with a licensed customs broker.

https://www.tariffstool.com/api/mcp
https://www.tariffstool.com/mcp

Tools: calculate_landed_cost, get_duty_layers, lookup_hts (keyword search of the public HTS duty index), check_import_ban, list_recent_tariff_changes, and estimate_tariff_refund (the refund estimator's IEEPA illustration). Every tool result includes source citations, the rate-table last_updated date, the disclaimer, and a link to the matching TariffsTool page.

{
  "mcpServers": {
    "tariffstool": {
      "url": "https://www.tariffstool.com/api/mcp"
    }
  }
}

Optional higher limit — use the free issued key, or any self-issued tt_free_ key:

{
  "mcpServers": {
    "tariffstool": {
      "url": "https://www.tariffstool.com/api/mcp",
      "headers": { "Authorization": "Bearer tt_free_examplekey" }
    }
  }
}

One-shot check with curl. A Streamable HTTP client should send both Accept types:

curl -s https://www.tariffstool.com/api/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"calculate_landed_cost","arguments":{"hts":"7208","origin":"china","customs_value":10000,"mode":"ocean"}}}'

Server card: /.well-known/mcp.json (also /server-card and /api/mcp/server-card). Domain catalog: /.well-known/ai-catalog.json.

Optional free API key

Request a free key with your name, email, company (optional), and what you will use the API for. We show the key once and store a SHA-256 hash plus that contact — never the plaintext key. Send it on /api/v1/rates, /api/v1/changes, /api/v1/landed-cost, and the MCP server as x-api-key or Authorization: Bearer. Calls without a key keep working. A well-formed tt_free_ key also keeps the higher per-instance landed-cost limit, including keys you minted yourself before this form existed.

curl -s https://www.tariffstool.com/api/v1/rates?country=china \
  -H 'x-api-key: tt_free_yourkey'

Attribution (required)

The API is free in exchange for a visible, crawlable credit link wherever the data is shown. Paste this snippet as-is — it must be a real <a href> link (please don’t add rel="nofollow"). Every API response also returns it ready-made in meta.attribution_html.

<a href="https://www.tariffstool.com">Tariff data by Tariffs Tool</a>

Terms

  • Attribution required: display “Data: TariffsTool.com” with a link to https://www.tariffstool.com wherever the data appears.
  • Fair use: the rates and changes responses are cached (1h); please cache those on your side too. The landed-cost endpoint is not cached and is rate limited per server instance. For production or high-volume use, contact us — we’re happy to support real integrations.
  • Disclaimer: sector rates are representative, and the landed-cost endpoint is the same HTS estimate as the calculator, including listed-line layers and import bans. Neither is a binding HTS classification or customs, legal, or tax advice. Verify with a licensed customs broker.

Built by Master Plan — the team behind the tariff calculator, duty drawback calculator, and the tariff guide library.