# USPS API: Estimate postage

> Estimates domestic USPS Post Office retail postage between two ZIP Codes for a letter, large envelope, package or flat-rate packaging, by weight and mailing date. Media Mail is left out; a zero-weight letter counts as one ounce. Prices are retail, cheapest first, with each service's estimated delivery.

Unofficial. Not affiliated with or endorsed by USPS.

- Page: https://fous.com/methods/usps.com/estimate-postage
- Method: `usps.com/estimate_postage`, version 1
- Website: usps.com
- Returns: services (name, retail price in USD, estimated delivery time and date, included extras, USPS page link), note
- Effect: read (it gets data and changes nothing)
- Sign-in: none needed
- Cost: 1 credit per completed run (1¢ with pay as you go); failed runs are free
- Verified: Nov 2, 2026

## Inputs

| Field | Type | Required | In the run below | Description |
|---|---|---|---|---|
| `width_in` | number | no |  | Package width in inches, for example 6; defaults to a small box. Default 6. |
| `height_in` | number | no |  | Package height in inches, for example 4; defaults to a small box. Default 4. |
| `length_in` | number | no |  | Package length in inches, for example 8; defaults to a small box. Default 8. |
| `ship_date` | string | no |  | Planned mailing date in YYYY-MM-DD, for example 2026-10-01; defaults to today (New York time). |
| `weight_lb` | number | yes | `2` | Weight in pounds, for example 2; enter 0 for a letter under a pound. |
| `weight_oz` | number | no |  | Additional ounces beyond the whole pounds, for example 8. Default 0. |
| `origin_zip` | string | yes | `"60601"` | Five-digit ZIP Code where the item is mailed, for example 10001. |
| `package_type` | string | no | `"flat_rate_box"` | Mailpiece or USPS flat-rate packaging type, for example package. One of "letter", "large_envelope", "package", "flat_rate_envelope", "flat_rate_box". Default "package". |
| `destination_zip` | string | yes | `"90001"` | Five-digit destination ZIP Code, for example 94105. |

## Output

From a run on Oct 31, 2026. Its input:

```json
{
  "weight_lb": 2,
  "origin_zip": "60601",
  "package_type": "flat_rate_box",
  "destination_zip": "90001"
}
```

Its output:

```json
{
  "note": null,
  "services": [
    {
      "currency": "USD",
      "page_link": "https://postcalc.usps.com/Calculator/ExtraServices?country=0&ccode=US&oz=60601&omil=False&dz=90001&dmil=False&retail=False&mdt=9/28/2026&mdz=8:00 AM&m=12&hscode=False&p=2&o=0&rect=True&l=0&h=0&w=0&g=0&mt=14&dok=XX&pt=r",
      "retail_price": 13.65,
      "service_name": "Priority Mail Small Flat Rate Box",
      "included_extras": [
        "USPS Tracking",
        "Insurance up to $100"
      ],
      "expected_delivery_date": "2026-10-01",
      "estimated_delivery_time": "Thu, Oct 1"
    },
    {
      "currency": "USD",
      "page_link": "https://postcalc.usps.com/Calculator/ExtraServices?country=0&ccode=US&oz=60601&omil=False&dz=90001&dmil=False&retail=False&mdt=9/28/2026&mdz=8:00 AM&m=12&hscode=False&p=2&o=0&rect=True&l=0&h=0&w=0&g=0&mt=13&dok=XX&pt=r",
      "retail_price": 24.8,
      "service_name": "Priority Mail Medium Flat Rate Box",
      "included_extras": [
        "USPS Tracking",
        "Insurance up to $100"
      ],
      "expected_delivery_date": "2026-10-01",
      "estimated_delivery_time": "Thu, Oct 1"
    },
    {
      "currency": "USD",
      "page_link": "https://postcalc.usps.com/Calculator/ExtraServices?country=0&ccode=US&oz=60601&omil=False&dz=90001&dmil=False&retail=False&mdt=9/28/2026&mdz=8:00 AM&m=12&hscode=False&p=2&o=0&rect=True&l=0&h=0&w=0&g=0&mt=12&dok=XX&pt=r",
      "retail_price": 34,
      "service_name": "Priority Mail Large Flat Rate Box",
      "included_extras": [
        "USPS Tracking",
        "Insurance up to $100"
      ],
      "expected_delivery_date": "2026-10-01",
      "estimated_delivery_time": "Thu, Oct 1"
    }
  ]
}
```

## Run it

From code, with a Fous API key in `FOUS_API_KEY`; the answer's `data` holds the output:

```bash
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"usps.com/estimate_postage","input":{"weight_lb":2,"origin_zip":"60601","package_type":"flat_rate_box","destination_zip":"90001"}}'
```

From an AI agent connected to the Fous MCP server: its `run` with the same method and input. To connect one, give it `set up https://fous.com/SKILL.md`.

## Ask your agent

- How much would it cost to mail a 3 lb 4 oz box measuring 12x10x6 inches from ZIP 60614 to 33139 next Tuesday? Show me the cheapest options and delivery dates.
- What's the USPS retail price to send a regular letter from 02139 to 98101, and how long will it take?
- I'm shipping a flat rate box from Austin 78704 to Denver 80202 on 2026-11-16 — what are my service options and prices on usps.com?
- Compare postage for a large envelope weighing 6 ounces going from 30309 to 10011, mailed on December 3rd.
- Check usps.com for the cheapest way to ship a 15 lb package (18x14x10) from 85004 to 04101 and when it would arrive.

## Input schema

```json
{
  "type": "object",
  "required": [
    "origin_zip",
    "destination_zip",
    "weight_lb"
  ],
  "properties": {
    "width_in": {
      "type": "number",
      "default": 6,
      "description": "Package width in inches, for example 6; defaults to a small box."
    },
    "height_in": {
      "type": "number",
      "default": 4,
      "description": "Package height in inches, for example 4; defaults to a small box."
    },
    "length_in": {
      "type": "number",
      "default": 8,
      "description": "Package length in inches, for example 8; defaults to a small box."
    },
    "ship_date": {
      "type": "string",
      "description": "Planned mailing date in YYYY-MM-DD, for example 2026-10-01; defaults to today (New York time)."
    },
    "weight_lb": {
      "type": "number",
      "minimum": 0,
      "description": "Weight in pounds, for example 2; enter 0 for a letter under a pound."
    },
    "weight_oz": {
      "type": "number",
      "default": 0,
      "minimum": 0,
      "description": "Additional ounces beyond the whole pounds, for example 8."
    },
    "origin_zip": {
      "type": "string",
      "maxLength": 5,
      "minLength": 5,
      "description": "Five-digit ZIP Code where the item is mailed, for example 10001."
    },
    "package_type": {
      "enum": [
        "letter",
        "large_envelope",
        "package",
        "flat_rate_envelope",
        "flat_rate_box"
      ],
      "type": "string",
      "default": "package",
      "description": "Mailpiece or USPS flat-rate packaging type, for example package."
    },
    "destination_zip": {
      "type": "string",
      "maxLength": 5,
      "minLength": 5,
      "description": "Five-digit destination ZIP Code, for example 94105."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "services",
    "note"
  ],
  "properties": {
    "note": {
      "type": [
        "string",
        "null"
      ]
    },
    "services": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "service_name",
          "retail_price",
          "currency",
          "estimated_delivery_time",
          "expected_delivery_date",
          "included_extras",
          "page_link"
        ],
        "properties": {
          "currency": {
            "type": "string"
          },
          "page_link": {
            "type": "string"
          },
          "retail_price": {
            "type": "number"
          },
          "service_name": {
            "type": "string"
          },
          "included_extras": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expected_delivery_date": {
            "type": [
              "string",
              "null"
            ]
          },
          "estimated_delivery_time": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "description": "Available retail postage options, cheapest first."
    }
  }
}
```

## See more

- [UPS API: Track package](https://fous.com/methods/ups.com/track-package.md): Tracks a UPS package by tracking number, with its status, delivery details and shipment history when available.
- [Zippopotam.us API: Get postal code](https://fous.com/methods/zippopotam.us/get-postal-code.md): Looks up the places, regions and coordinates for a postal code in a supported country on Zippopotam.us.
- [Zippopotam.us API: Search postal codes](https://fous.com/methods/zippopotam.us/search-postal-codes.md): Finds postal codes, place names and coordinates for a town and state or region in a country covered by Zippopotam.us.
- [Instacart API: Search store products](https://fous.com/methods/instacart.com/search-products.md): Searches a named Instacart store's guest-visible grocery products for a US ZIP code. Prices are in USD and can differ from in-store prices; stock estimates can change.
- [Cost Plus Drugs API: Get drug price](https://fous.com/methods/costplusdrugs.com/get-drug-price.md): Looks up a medicine at Cost Plus Drugs by generic or brand name and returns the listed price and its breakdown for a strength, form and quantity, with the strengths and forms on offer. The drug price excludes shipping and taxes; standard shipping is shown separately.
- [Drugs.com API: Get drug prices](https://fous.com/methods/drugs.com/get-drug-prices.md): Gets the US cash prices Drugs.com lists for a brand or generic medicine by strength, dosage form and quantity, optionally filtered. Where a range is listed the lower price is returned.
- [Realtor.com API: Get home details](https://fous.com/methods/realtor.com/get-home.md): Gets a home's details from Realtor.com by street address or Realtor.com property link: status, list price, value estimate, beds, baths, size, year built, HOA fee, property and tax history, nearby schools, flood risk and photos.
- [OfferUp API: Search listings](https://fous.com/methods/offerup.com/search-listings.md): Finds OfferUp items for sale near a US city or ZIP code, with prices, condition, seller names, distance and links. Distances use approximate listing locations.
