- CLAUDE.md (this file) — dispatch rules and code generation standards
- AGENTS.md — security rules, API constraints, decision trees
- skills/easypost/SKILL.md — core domain knowledge (API-first, single source of truth)
- skills/easypost/references/ — deep-dive guides for complex flows
- skills/easypost/sdk-hints/{language}.md — concise SDK patterns for the user's language
Determine the user's language from context (file extensions, imports, explicit mention). Route to the correct sdk-hint:
| Language | SDK Hint File |
|---|---|
| Python | sdk-hints/python.md |
| Node.js / TypeScript | sdk-hints/nodejs.md |
| Ruby | sdk-hints/ruby.md |
| PHP | sdk-hints/php.md |
| Java / Kotlin | sdk-hints/java.md |
| C# / .NET | sdk-hints/csharp.md |
| Go | sdk-hints/go.md |
| curl / HTTP | sdk-hints/curl.md |
If the language is unclear, ask the user.
| User Intent | Reference | SDK Hint |
|---|---|---|
| Create shipment / buy label | references/shipment-lifecycle.md |
sdk-hints/{lang}.md |
| Compare rates / cheapest rate | references/rate-shopping.md |
sdk-hints/{lang}.md |
| SmartRate / delivery estimates | references/rate-shopping.md |
sdk-hints/{lang}.md |
| Luma Promise / Select / Insights | references/luma-smartrate.md |
sdk-hints/{lang}.md |
| Batch labels / bulk shipping | references/batch-operations.md |
sdk-hints/{lang}.md |
| Track package | references/shipment-lifecycle.md |
sdk-hints/{lang}.md |
| Verify address | references/address-verification.md |
sdk-hints/{lang}.md |
| International / customs | references/international-customs.md |
sdk-hints/{lang}.md |
| Tax identifiers (IOSS, EORI, etc.) | references/tax-identifiers.md |
sdk-hints/{lang}.md |
| Insurance | references/shipment-lifecycle.md |
sdk-hints/{lang}.md |
| Refund shipment | references/shipment-lifecycle.md |
sdk-hints/{lang}.md |
| Carrier accounts | references/carrier-accounts.md |
sdk-hints/{lang}.md |
| Webhooks | references/webhooks-events.md |
sdk-hints/{lang}.md |
| Multi-parcel order | references/batch-operations.md |
sdk-hints/{lang}.md |
| API endpoints / HTTP reference | references/api-endpoints.md |
sdk-hints/curl.md |
| Error debugging | references/error-handling.md |
sdk-hints/{lang}.md |
| Shipping terms / glossary | references/support-kb.md |
— |
| Migrate from Shippo | references/migrate-from-shippo.md |
sdk-hints/{lang}.md |
| Migrate from ShipEngine | references/migrate-from-shipengine.md |
sdk-hints/{lang}.md |
| Migrate from Stamps.com | references/migrate-from-stamps.md |
sdk-hints/{lang}.md |
| Migrate from ShipStation | references/migrate-from-shipstation.md |
sdk-hints/{lang}.md |
| Schedule pickup | references/pickup-operations.md |
sdk-hints/{lang}.md |
| File insurance claim | references/claims.md |
sdk-hints/{lang}.md |
| EndShipper / platform shipping | references/end-shippers.md + references/forge-embeddables.md |
— |
| Forge / Embeddables | references/forge-embeddables.md |
— |
-
Always wrap EasyPost calls in try/catch (or language equivalent) — see the error handling pattern in the relevant sdk-hint file.
-
Use decimal types for money — rate amounts are strings. Never use floating point for money math.
-
Use environment variables for API keys — never hardcode.
-
Always check for empty rates — when
ratesis empty, checkmessagesforrate_errorentries. -
Convert units before sending — weight in ounces, dimensions in inches.
-
incotermgoes inoptions, notcustoms_info— this is the most common international shipping mistake.