# Incoterms API
> The ICC Incoterms — the international commercial terms used in every contract of international sale — as an API. For each of the 11 three-letter terms (EXW, FCA, FAS, FOB, CFR, CIF, CPT, CIP, DAP, DPU, DDP): its full name, a plain-language description of what the seller and the buyer are each responsible for, the official Incoterms group (E departure, F main-carriage-unpaid, C main-carriage-paid, D arrival) and the mode of transport it applies to (any mode, or sea and inland waterway only). Look a term up, list the terms in a group, filter by transport mode, or list them all. The reference an e-commerce checkout, ERP, freight-forwarding or trade-finance system needs to interpret a delivery term. Served from memory — always fast.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/incoterms-api/..."
```

## Pricing
- **Free** (Free) — 10,000 calls/Mo, 3 req/s
- **Starter** ($5/Mo) — 110,000 calls/Mo, 10 req/s
- **Pro** ($14/Mo) — 550,000 calls/Mo, 25 req/s
- **Mega** ($34/Mo) — 2,800,000 calls/Mo, 60 req/s

## Endpoints

### Lookup

#### `GET /v1/term` — Incoterm by three-letter term

**Parameters:**
- `term` (query, required, string) — Three-letter Incoterm Example: `CIF`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/incoterms-api/v1/term?term=CIF"
```

**Response:**
```json
{
    "data": {
        "incoterm": {
            "mode": "Sea and inland waterway",
            "name": "Cost, Insurance and Freight",
            "term": "CIF",
            "group": "C",
            "group_name": "Main carriage paid",
            "description": "The seller covers transport and minimum insurance to the destination port. Under Incoterms 2020, the minimum insurance required is ICC (C). Risk transfers to the buyer once the goods are loaded onto the ship."
        }
    },
    "meta": {
        "timestamp": "2026-06-08T18:25:07.123Z",
        "request_id": "59c3929c-52ef-4d89-ad80-1c3729a068d1"
    },
    "status": "ok",
    "message": "Incoterm retrieved successfully",
    "success": true
}
```

### Group

#### `GET /v1/group` — Terms in an Incoterms group

**Parameters:**
- `group` (query, required, string) — Group letter: E, F, C or D Example: `C`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/incoterms-api/v1/group?group=C"
```

**Response:**
```json
{
    "data": {
        "count": 4,
        "group": "C",
        "incoterms": [
            {
                "mode": "Sea and inland waterway",
                "name": "Cost and Freight",
                "term": "CFR",
                "group": "C",
                "group_name": "Main carriage paid",
                "description": "The seller covers transport costs to the destination port. Risk transfers to the buyer once the goods are loaded onto the ship."
            },
            {
                "mode": "Sea and inland waterway",
                "name": "Cost, Insurance and Freight",
                "term": "CIF",
                "group": "C",
                "group_name": "Main carriage paid",
                "description": "The seller covers transport and minimum insurance to the destination port. Under Incoterms 2020, the minimum insurance required is ICC (C). Risk transfers to the buyer once the goods are loaded onto the ship."
            },
            {
                "mode": "Any mode of transport",
                "name": "Carriage and Insurance Paid To",
                "term": "CIP",
                "group": "C",
                "group_name": "Main carriage paid",
                "description": "The seller covers transportation and insurance to the agreed destination. Under Incoterms 2020, the seller must provide insurance coverage at least equal to ICC (A) or an equivalent standard. Risk transfers to the buyer once the goods are handed over to the first c
…(truncated, see openapi.json for full schema)
```

### Mode

#### `GET /v1/mode` — Terms by transport mode

**Parameters:**
- `mode` (query, required, string) — 'any' or 'sea' Example: `sea`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/incoterms-api/v1/mode?mode=sea"
```

**Response:**
```json
{
    "data": {
        "mode": "Sea and inland waterway",
        "count": 4,
        "incoterms": [
            {
                "mode": "Sea and inland waterway",
                "name": "Cost and Freight",
                "term": "CFR",
                "group": "C",
                "group_name": "Main carriage paid",
                "description": "The seller covers transport costs to the destination port. Risk transfers to the buyer once the goods are loaded onto the ship."
            },
            {
                "mode": "Sea and inland waterway",
                "name": "Cost, Insurance and Freight",
                "term": "CIF",
                "group": "C",
                "group_name": "Main carriage paid",
                "description": "The seller covers transport and minimum insurance to the destination port. Under Incoterms 2020, the minimum insurance required is ICC (C). Risk transfers to the buyer once the goods are loaded onto the ship."
            },
            {
                "mode": "Sea and inland waterway",
                "name": "Free Alongside Ship",
                "term": "FAS",
                "group": "F",
                "group_name": "Main carriage unpaid",
                "description": "The seller places the goods alongside the ship at the agreed port. The seller clears them for export, but the buyer covers loading costs and risks. Used for bulk and heavy-lift cargo, not containers."
            },
            {
                "mode
…(truncated, see openapi.json for full schema)
```

### List

#### `GET /v1/list` — List all Incoterms

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/incoterms-api/v1/list"
```

**Response:**
```json
{
    "data": {
        "total": 11,
        "incoterms": [
            {
                "mode": "Sea and inland waterway",
                "name": "Cost and Freight",
                "term": "CFR",
                "group": "C",
                "group_name": "Main carriage paid",
                "description": "The seller covers transport costs to the destination port. Risk transfers to the buyer once the goods are loaded onto the ship."
            },
            {
                "mode": "Sea and inland waterway",
                "name": "Cost, Insurance and Freight",
                "term": "CIF",
                "group": "C",
                "group_name": "Main carriage paid",
                "description": "The seller covers transport and minimum insurance to the destination port. Under Incoterms 2020, the minimum insurance required is ICC (C). Risk transfers to the buyer once the goods are loaded onto the ship."
            },
            {
                "mode": "Any mode of transport",
                "name": "Carriage and Insurance Paid To",
                "term": "CIP",
                "group": "C",
                "group_name": "Main carriage paid",
                "description": "The seller covers transportation and insurance to the agreed destination. Under Incoterms 2020, the seller must provide insurance coverage at least equal to ICC (A) or an equivalent standard. Risk transfers to the buyer once the goods are handed over to the first carrier."
            
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/incoterms-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "groups": {
            "C": "Main carriage paid",
            "D": "Arrival",
            "E": "Departure",
            "F": "Main carriage unpaid"
        },
        "service": "incoterms-api",
        "endpoints": {
            "GET /v1/list": "List all Incoterms.",
            "GET /v1/meta": "This document.",
            "GET /v1/mode": "Terms by transport mode (mode=, 'any' or 'sea').",
            "GET /v1/term": "Incoterm detail by three-letter term (term=, e.g. CIF).",
            "GET /v1/group": "Terms in an Incoterms group (group=, E / F / C / D)."
        },
        "description": "ICC Incoterms (international commercial terms): three-letter term, full name, plain-language description, official group (E/F/C/D) and transport mode. Look up a term, list a group, filter by mode, or list them all. The reference a checkout, ERP, freight or trade-finance system needs. No key.",
        "total_terms": 11
    },
    "meta": {
        "timestamp": "2026-06-08T18:25:07.612Z",
        "request_id": "b8d77ad4-3896-478b-b0f2-9cca23b4218c"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/incoterms-api
OpenAPI spec: https://www.oanor.com/api/incoterms-api/openapi.json
