> ## Documentation Index
> Fetch the complete documentation index at: https://docs.packageretriever.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Package Retriever API

> The free shipping API for multi-carrier label creation, rate shopping, and real-time tracking.

# Package Retriever API

The free shipping API for multi-carrier label creation, rate shopping, and real-time tracking. No subscription required.

<Cards>
  <Card title="Buy & Print Labels" icon="tag">
    Purchase shipping labels across USPS, UPS, FedEx, and Sendle in a single API call.
  </Card>

  <Card title="Rate Shop" icon="dollar-sign">
    Compare rates across all carriers instantly. Sorted cheapest-first with carbon estimates.
  </Card>

  <Card title="Real-Time Tracking" icon="truck">
    Register tracking numbers and poll for delivery event updates.
  </Card>

  <Card title="BYOA — No Surcharge" icon="key">
    Use your own negotiated carrier rates at no extra cost.
  </Card>
</Cards>

## Quick start

```bash theme={null}
npm install @packageretriever/sdk
```

```typescript theme={null}
import PackageRetriever from '@packageretriever/sdk';

const pr = new PackageRetriever('pr_test_YOUR_KEY_HERE');

// Validate an address
const address = await pr.addresses.validate({
  name: 'Jane Smith',
  street1: '417 Montgomery St',
  city: 'San Francisco',
  state: 'CA',
  zip: '94104',
  country: 'US'
});

// Get rates
const rates = await pr.rates.get({
  from_address: address,
  to_address: { name: 'Customer', street1: '123 Main St', city: 'Austin', state: 'TX', zip: '78701', country: 'US' },
  parcel: { weight_oz: 16, length: 9, width: 6, height: 2 }
});

// Buy the cheapest label
const label = await pr.labels.create({ rate_id: rates.rates[0].id });
console.log(label.tracking_number); // 9400111899223408065744
```

## Why Package Retriever?

* **Free API access** — no \$99/month Gold Plan, no subscription tiers
* **BYOA at no surcharge** — use your own FedEx/UPS rates without paying extra
* **Published rate limits** — no surprises, no undocumented 429s
* **Normalized errors** — every error includes a `suggestion` field telling you what to do next
* **Carbon emissions** — `carbon_grams` on every rate response
* **5,000 label batches** — 10x what ShipStation allows

## Switching from ShipStation?

We have a [migration guide](/guides/migrating-from/shipstation) that maps every ShipStation API endpoint to ours. Your integration takes hours, not days.

## Resources

* [OpenAPI Spec](/openapi.yaml) — download the full spec
* [Postman Collection](https://www.postman.com/science-technologist-87730730-3444778/package-retriever-unleashed-api/collection/1m4j65c/package-retriever-unleashed-api) — import and start testing
* [Status Page](https://status.packageretriever.com) — real-time API health
