Developer API

VGTC API

Automate global trade compliance directly from your applications.

Verdicts are built from official sources — see Regulatory Sources & Freshness for the machine-readable evidence registry.

Sign in for API access

What You Can Do

Use the VGTC API to:

Classify products with HS codes
Screen parties against sanctions lists
Calculate landed cost with duties and taxes
Evaluate FTA eligibility
Generate compliance reports
Verify audit certificates

Enterprise-grade API access for logistics platforms, ERP systems, customs brokers, and compliance teams.

Features

REST API

Simple REST endpoints with JSON responses

Secure API Keys

Enterprise-grade key management with hashing

Multi-Tenant Isolation

Row-level security for data isolation

Rate Limiting

Plan-based rate limits and quotas

Audit Logging

Complete request tracking and audit trail

Enterprise Support

Dedicated integration support options

API Access

API access is included with paid plans. Free plan does not include API access.

Starter

500 requests/month

100 requests/minute

Popular

Pro

4,000 credits/month; costs vary by action

Separate 5,000 requests/month fair-use cap

500 requests/minute

Enterprise

Custom limits

Custom rate limits

Authentication

Authenticate using your VGTC API key generated from your dashboard.

Plaintext API keys are shown once and only a hash is stored. You can revoke a key or rotate it by regenerating a replacement from the dashboard.

curl -X POST https://vgtc-production.up.railway.app/api/v1/classify/quick \
  -H "Authorization: Bearer vgk_live_your_key" \
  -H "X-Tenant-ID: your_org" \
  -H "Content-Type: application/json" \
  -d '{"description": "Laptop computer, 15 inch"}'

Core Endpoints

POST
/api/v1/shipment/review

One evidence-backed shipment verdict (READY / REVIEW / BLOCKED) with reason codes, next actions, the US duty composition and evidence. Declared HS is optional. Add ?format=json|md|txt|pdf for a report.

POST
/api/v1/duty/us-stack

US stacked-duty composition (base/MFN, Section 301, Section 232, Chapter 99, AD/CVD boundary, preference) with effective dates and official sources. Total is only COMPLETE when every applicable component is verified.

POST
/api/v1/shipment/review/report

Render an existing review object to JSON / Markdown / TXT / PDF. Presentation only — does not re-run the engine or consume credits.

GET
/api/v1/shipment/review/health

Shipment Review capability status (supported destinations, document-extraction enabled).

GET
/api/v1/sources

Official regulatory source registry with legal character, access method and honest freshness.

GET
/api/v1/sources/changes

Regulatory change monitor: detected changes (UNDER_REVIEW) and per-source freshness health. Read-only.

GET
/api/v1/version

API version, versioning policy, developer error contract and changelog.

POST
/api/v1/classify/quick

Classify a product description to an HS code with GRI legal reasoning.

POST
/api/v1/compliance/check-text

Full compliance report from text: sanctions, export controls, tariffs.

POST
/api/v1/compliance/comprehensive-check

Unified single call: HS + GRI + sanctions + optional VNACCS pre-submission validation.

POST
/api/v1/compliance/vnaccs/validate

Validate a Vietnam VNACCS declaration before submission (tax ID, HS, regime, Incoterm).

POST
/api/v1/compliance/fba-assessment

Amazon FBA pre-shipment readiness score with remediation.

POST
/api/v1/export/certificate

Generate a SHA-256 hash-chained audit certificate with a shareable verification URL.

POST
/api/v1/api-keys

Create production or sandbox (sk_test_) API keys.

Shipment Verdict

POST /api/v1/shipment/review returns one deterministic verdict. Legal truth comes from official sources and VGTC engines — never from AI. Optional ownership, supply-chain and tariff-component details progressively deepen the same review.

READY

All supported critical checks passed and no material ambiguity remains.

REVIEW

Missing, uncertain, unsupported or inconsistent — human review recommended.

BLOCKED

A verified deterministic blocking condition (e.g. sanctions match).

{
  "verdict": "REVIEW",
  "summary": { "checks_completed": 9, "verified": 5, "requires_review": 1, "blocking": 0 },
  "reason_codes": ["TARIFF_UNVERIFIED"],
  "next_actions": ["Confirm the tariff/duty rate with the authority."],
  "evidence": [ { "check": "us_duty_tariff", "status": "review" } ],
  "ownership": { "status": "OWNERSHIP_UNKNOWN" },
  "forced_labour": { "status": "SOURCE_UNAVAILABLE", "limitation": "No list match is not proof of compliance." },
  "tariff_stack": { "total_status": "COMPLETE", "total_rate_pct": 16.5, "components": [ { "component_type": "BASE_DUTY", "status": "VERIFIED", "rate": 16.5, "effective_from": "2026-01-01", "source_id": "us_hts" } ] },
  "duty_composition": {
    "total_status": "COMPLETE",
    "total_rate_pct": 16.5,
    "estimated_total_usd": 165.0,
    "components": [
      { "component_type": "BASE_DUTY", "status": "VERIFIED", "rate": 16.5, "effective_from": "2026-01-01", "source_id": "us_hts" },
      { "component_type": "SECTION_301", "status": "NOT_APPLICABLE" },
      { "component_type": "AD_CVD", "status": "NOT_APPLICABLE" }
    ],
    "ad_cvd": { "status": "NO_KNOWN_AD_CVD_EXPOSURE" }
  },
  "requirements": { "verdict": "REVIEW", "nodes": [] },
  "coverage": { "global_coverage_status": "SOURCE_STALE" },
  "run_id": "sr_...", "limitations": ["..."]
}

Interactive API Reference

Explore every VGTC endpoint live — full request/response schemas, error codes, and try-it-yourself.

Rate Limits

Starter100 requests/minute
Pro500 requests/minute
EnterpriseCustom

Errors, Idempotency & Versioning

Retry safely with X-Idempotency-Key

  • Same key + same body → billed once and the same run_id is returned (the deterministic engine may re-run).
  • Same key + different body → 409 conflict; nothing is charged.
  • No key → the server derives a per-request key; two distinct requests are billed separately.
  • Failed requests (422 validation, 401/403, 429, 5xx) never consume credits.

Error classes

400 · bad_request — fix payload401 · unauthorized — add credentials402 · payment_required — upgrade / quota403 · forbidden — tenant/scope404 · not_found409 · conflict — idempotency key reuse422 · validation_error — fix fields429 · rate_limited — back off (retryable)500/503 · server unavailable (retryable, same key)

Machine-readable contract and changelog: GET /api/v1/version.

Liability & human review

VGTC is decision-support software. The importer/exporter remains responsible for compliance. VGTC reports verified findings, unresolved issues and their official evidence; a REVIEW result means a human must confirm something before reliance. Evidence and freshness are published at /data-sources.

Support

Enterprise Integration Support

Get help integrating VGTC into your existing systems

Custom Onboarding

Personalized setup and configuration assistance

Dedicated Account Management

Single point of contact for your organization

Support Options

Discuss support requirements with our sales team