Skip to content
Back to skills

Flexport Hello World

ASecurity

\"Create a minimal working Flexport example \\u2014 list shipments and\\ \\ track containers.\\nUse when starting a new Flexport integration, testing your\\ \\ setup,\\nor learning the Flexport REST API v2 patterns.\\nTrigger: \\\"flexport hello\\ \\ world\\\", \\\"flexport example\\\", \\\"flexport quick start\\\".\\n\"

  • 3 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 12, 2026
ai-agentstypescriptpythongobashnodetestinggitapibackend

Works with

  • api

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add thedixitjain/the-mega-skill-library --skill flexport-hello-world --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Flexport Hello World?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Flexport Hello World
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thedixitjain-flexport-hello-world/badge)](https://www.skillsdirectory.com/skills/thedixitjain-flexport-hello-world)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: flexport-hello-world
description: "\"Create a minimal working Flexport example \\u2014 list shipments and\\ \\ track containers.\\nUse when starting a new Flexport integration, testing your\\ \\ setup,\\nor learning the Flexport REST API v2 patterns.\\nTrigger: \\\"flexport hello\\ \\ world\\\", \\\"flexport example\\\", \\\"flexport quick start\\\".\\n\""
allowed-tools: "Read, Write, Edit, Bash(npm:*), Bash(curl:*)"
category: backend-and-data
source_repo: jeremylongshore/claude-code-plugins-plus-skills
source_path: "skills/.curated/flexport-hello-world/SKILL.md"
source_url: https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/HEAD/skills/.curated/flexport-hello-world/SKILL.md
---

# Flexport Hello World

## Overview

List shipments and retrieve tracking milestones using the Flexport REST API v2. Flexport has no npm SDK -- you call `https://api.flexport.com` directly with bearer token auth and a `Flexport-Version: 2` header.

## Prerequisites

- `FLEXPORT_API_KEY` environment variable set
- Completed `flexport-install-auth` setup
- Node.js 18+ (uses native `fetch`)

## Instructions

### Step 1: List Your Shipments

```typescript
// src/flexport/hello.ts
const BASE = 'https://api.flexport.com';
const headers = {
  'Authorization': `Bearer ${process.env.FLEXPORT_API_KEY}`,
  'Flexport-Version': '2',
  'Content-Type': 'application/json',
};

// List shipments with pagination
const res = await fetch(`${BASE}/shipments?per=5&page=1`, { headers });
const { data } = await res.json();

data.records.forEach((shipment: any) => {
  console.log(`${shipment.id} | ${shipment.status} | ${shipment.freight_type}`);
  console.log(`  Origin: ${shipment.origin_port?.name ?? 'N/A'}`);
  console.log(`  Dest:   ${shipment.destination_port?.name ?? 'N/A'}`);
});
```

### Step 2: Get Shipment Details with Milestones

```typescript
// Retrieve a single shipment with tracking milestones
const shipmentId = data.records[0].id;
const detail = await fetch(`${BASE}/shipments/${shipmentId}`, { headers }).then(r => r.json());

console.log(`\nShipment ${detail.data.id}:`);
console.log(`  Status: ${detail.data.status}`);
console.log(`  Cargo ready: ${detail.data.cargo_ready_date}`);
console.log(`  Containers: ${detail.data.containers?.length ?? 0}`);
```

### Step 3: List Containers on a Shipment

```typescript
// Get container details for ocean freight shipments
const containers = await fetch(
  `${BASE}/shipments/${shipmentId}/containers`, { headers }
).then(r => r.json());

containers.data.records.forEach((c: any) => {
  console.log(`Container ${c.container_number} | ${c.container_type} | ${c.status}`);
});
```

## Output

```
shp_abc123 | in_transit | ocean
  Origin: Shanghai Port
  Dest:   Los Angeles Port

Shipment shp_abc123:
  Status: in_transit
  Cargo ready: 2025-03-01
  Containers: 2

Container MSKU1234567 | 40ft_hc | in_transit
```

## Error Handling

| Error | Cause | Solution |
|-------|-------|----------|
| 401 Unauthorized | Invalid API key | Check `FLEXPORT_API_KEY` env var |
| 404 Not Found | Wrong shipment ID | Verify ID from `/shipments` list |
| 422 Unprocessable | Bad query params | Check `per`/`page` are integers |
| Empty records array | No shipments yet | Create a booking first or use sandbox |

## Examples

### Python Quick Start

```python
import os, requests

BASE = 'https://api.flexport.com'
headers = {
    'Authorization': f'Bearer {os.environ["FLEXPORT_API_KEY"]}',
    'Flexport-Version': '2',
}

shipments = requests.get(f'{BASE}/shipments', headers=headers, params={'per': 5}).json()
for s in shipments['data']['records']:
    print(f"{s['id']} | {s['status']} | {s['freight_type']}")
```

### cURL One-Liner

```bash
curl -s -H "Authorization: Bearer $FLEXPORT_API_KEY" \
     -H "Flexport-Version: 2" \
     https://api.flexport.com/shipments?per=3 | jq '.data.records[] | {id, status, freight_type}'
```

## Resources

- [Shipment API Tutorial](https://developers.flexport.com/tutorials/shipment-api-tutorial/)
- [Flexport API Reference](https://apidocs.flexport.com/)
- [Developer Portal](https://developers.flexport.com/)

## Next Steps

Proceed to `flexport-local-dev-loop` for development workflow setup.

---

**Source:** [`jeremylongshore/claude-code-plugins-plus-skills`](https://github.com/jeremylongshore/claude-code-plugins-plus-skills) → `skills/.curated/flexport-hello-world/SKILL.md`

**Also appears in:** `jeremylongshore/claude-code-plugins-plus-skills/plugins/saas-packs/flexport-pack/skills/flexport-hello-world/SKILL.md`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.