API Documentation
Everything you need to integrate LandedAPI — authentication, endpoint reference, request shapes, and response examples.
Authentication
All /v1/* endpoints require a Bearer token in the Authorization header. The /health endpoint is public and requires no authentication.
Authorization: Bearer <key> — not x-api-key or any other header format. Requests with an incorrect or missing header receive a 401 response.
Quickstart
Two curl commands to verify connectivity and your first authenticated result.
1 — Health check (no auth required)Endpoints
Returns the current API status and server timestamp. Use this to verify connectivity before making authenticated requests. No API key required.
Full-text search across 29,597 HTS code descriptions. Returns all matching codes ranked by relevance, including their chapter, heading, and indent level for hierarchy navigation.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | required | Search term matched against HTS description text. |
Search 192,305 CBP administrative rulings by summary text. Returns ruling number, associated HTS code, ruling date, and summary. Useful for finding precedent classifications.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | required | Search term matched against ruling summary text. |
AI-powered HTS classification with GRI reasoning. Returns a ranked list of candidate HTS codes, confidence scores, full GRI analysis explaining each classification, and supporting CBP rulings where available.
| Field | Type | Required | Description |
|---|---|---|---|
| description | string | required | Plain-language product description. More detail yields more accurate classifications. |
| country_of_origin | string | optional | Country of manufacture. Used to flag applicable Section 301 or antidumping duties. |
Returns up to four optimization vectors — material composition, country of origin, first-sale valuation, and FTA qualification — with estimated annual savings, feasibility ratings, and CBP ruling citations for each path.
| Field | Type | Required | Description |
|---|---|---|---|
| product_description | string | required | Plain-language description of the product. |
| chapter | number | required | HTS chapter number (e.g. 64 for footwear). |
| material_composition | object | required | Key/value map of material names to percentage by weight. |
| country_of_origin | string | required | Current country of manufacture. |
| annual_import_value | number | required | Annual import value in USD. Used to calculate projected savings. |
| current_hts | string | optional | Known current HTS code. Improves accuracy of duty rate calculations. |
Error Codes
All error responses return JSON with an error field containing a human-readable message.
| Status | Meaning | Common cause |
|---|---|---|
| 200 | OK | Request succeeded. Check data or response body. |
| 401 | Unauthorized | Missing, malformed, or invalid Authorization header. Verify format: Bearer <key>. |
| 400 | Bad Request | Missing required body field or invalid JSON. Check the error message for the specific field. |
| 429 | Rate Limit Exceeded | You have exceeded your tier's monthly call limit. Upgrade or wait for reset. |
| 500 | Server Error | Unexpected server-side error. Retry with exponential backoff. Contact support if persistent. |
Rate Limits
Limits are applied per API key on a monthly rolling basis. Pro and Scale tiers include overage protection — calls above the included quota are blocked, not billed, preventing surprise charges.
| Tier | Monthly calls | Price | Overage behavior |
|---|---|---|---|
| Starter | 1,000 | $49 / month | Calls blocked at limit. Upgrade to continue. |
| Pro | 5,000 | $149 / month | Overage Protection — no surprise bills. Calls blocked at limit. |
| Scale | 20,000 | $399 / month | Overage Protection — no surprise bills. Calls blocked at limit. |
| Enterprise | Custom | Custom | Negotiated SLA. Dedicated infrastructure. Contact us. |
429 response. Monthly limits reset on your billing cycle date. Enterprise customers receive a dedicated API key with custom limits — email hello@landedapi.dev to discuss.