canonical: https://jentic.com/apis/fedex.com/fedex

# FedEx Ship API

Jentic publishes the only available OpenAPI specification for FedEx Ship API, keeping it validated and agent-ready. The FedEx Ship API supports creation, validation, and cancellation of shipments and tag management for FedEx Express and Ground services. Six endpoints cover synchronous and asynchronous shipment creation, address and rule validation, cancellation, and tag operations so e-commerce platforms, 3PLs, and ERPs can produce shipping labels and recover from errors without scraping the FedEx web portal.

## For AI agents

Create, validate, and cancel FedEx shipments and manage tags for FedEx Express and Ground services through a bearer-authenticated REST API.

## Scope

Does not handle freight bookings, billing reconciliation, or rate quoting - use for FedEx Express and Ground shipment creation, validation, cancellation, and tag management only.

## Capabilities

- Create FedEx Express and Ground shipments and receive label data
- Validate a shipment payload before booking to catch address and rule errors
- Retrieve the result of an asynchronous shipment job by jobId
- Cancel a shipment using its tracking number
- Create and cancel FedEx tags for one-off pickups
- Drive label generation from order management or ERP systems

## Use cases

### E-Commerce Order Fulfilment

Online stores call POST /ship/v1/shipments to create a FedEx label as soon as an order is paid, then POST /ship/v1/shipments/validate when address details are flagged uncertain. The validation step surfaces incorrect postcodes or service-incompatible weights before they fail at booking, reducing failed shipments and customer service load.

Example prompt: When an order is marked paid, call POST /ship/v1/shipments with the package and recipient details and store the returned tracking number on the order.

### Returns and Tag Management

Retailers offer customer returns by issuing FedEx tags via POST /ship/v1/tags so the customer can hand the package to a FedEx driver without printing anything. If the return is no longer needed, DELETE /ship/v1/tags/{confirmationNumber} releases the tag, avoiding unnecessary pickup fees.

Example prompt: Call POST /ship/v1/tags with the customer address and parcel details, email the confirmation to the customer, and call DELETE /ship/v1/tags/{confirmationNumber} if the return is cancelled.

### Asynchronous Bulk Label Generation

Warehouses processing thousands of shipments at end-of-day book asynchronously and pick up results later. After submitting batches, GET /ship/v1/shipments/async/{jobId} retrieves the job result so the WMS can attach labels to the correct outbound parcels without holding open a long-running connection.

Example prompt: Submit the end-of-day shipment batch and poll GET /ship/v1/shipments/async/{jobId} until each job completes, then attach labels to outbound parcels.

### Agent-Driven Shipping Decisions

An AI agent assisting a small online seller can use Jentic to discover the FedEx Ship API operations, validate a draft shipment, create the booking, and cancel and rebook if a service-level error is returned - keeping the FedEx OAuth bearer credential inside your Jentic One instance.

Example prompt: Use Jentic to search 'create a fedex shipment' and execute POST /ship/v1/shipments with the validated package and recipient payload.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /ship/v1/shipments | Create a shipment |
| POST | /ship/v1/shipments/validate | Validate a shipment payload |
| GET | /ship/v1/shipments/async/{jobId} | Retrieve async shipment job result |
| DELETE | /ship/v1/shipments/{trackingNumber} | Cancel a shipment |
| POST | /ship/v1/tags | Create a FedEx tag for pickup |
| DELETE | /ship/v1/tags/{confirmationNumber} | Cancel a FedEx tag |

## Key resources

- **Shipments** — Create, validate, retrieve async, and cancel FedEx shipments
- **Tags** — Create and cancel FedEx tags for customer pickups

## Why Jentic

- **Setup:** Wiring the FedEx Ship API by hand means running the OAuth 2.0 flow, refreshing bearer tokens before they expire, and assembling deeply nested shipment payloads yourself. Through Jentic you install once, import FedEx Ship from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** FedEx Ship is organised around shipment and tag operations where new shipments are created before an id exists, so limit the agent to the operations it needs, such as creating and validating a shipment. You choose which operations it may call, so destructive ones like cancelling a shipment or deleting a tag are included only when you add them.
- **Credential handling:** Your FedEx client credentials are stored once, encrypted, by your own Jentic One instance, which refreshes and injects the bearer Authorization header at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a FedEx shipment', and Jentic returns the matching FedEx Ship endpoint with its input schema, including the nested shipment object structure, so the agent calls the right endpoint without browsing the docs.

## Related APIs

- **DHL Shipment Tracking** — Carrier alternative for international shipping with strong EU and Asia coverage
- **Shippo** — Multi-carrier shipping aggregator that complements direct FedEx integration
- **AfterShip** — Branded post-purchase tracking and notifications layered on top of FedEx labels

## FAQ

### Why is there no official OpenAPI spec for FedEx Ship API?

FedEx publishes JSON examples and reference docs on developer.fedex.com but not a unified OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call FedEx Ship API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the FedEx Ship API use?

The FedEx Ship API uses OAuth 2.0 bearer tokens issued by FedEx's authorization server. Through Jentic the bearer token is stored in the vault and injected into the Authorization header at call time so the agent never sees the raw secret.

### Can I validate a FedEx shipment before booking it?

Yes. POST /ship/v1/shipments/validate runs the same business rules as creation but does not commit the shipment, letting you catch address or service errors before the label is produced.

### What are the rate limits for the FedEx Ship API?

FedEx applies per-account throughput limits negotiated with each contract; numeric limits are not declared in this OpenAPI spec. Apply backoff on 429 and 503 responses and check your FedEx Developer Portal account for current quota.

### How do I create a FedEx shipment through Jentic?

Run pip install jentic, search 'create a fedex shipment', load POST /ship/v1/shipments, and execute it with the package and recipient details to receive the tracking number and label data.

### Can I cancel a shipment after creation?

Yes. DELETE /ship/v1/shipments/{trackingNumber} cancels a shipment that has not yet been picked up by FedEx, returning the tracking number to an unused state.

### Can I limit what my agent is allowed to do with the FedEx Ship API?

Yes. Because Jentic One is self-hosted, you decide which FedEx Ship operations your agent may call and which credentials it uses, so you can grant only creating and validating shipments (POST /ship/v1/shipments and POST /ship/v1/shipments/validate) and leave everything else out. Destructive operations such as cancelling a shipment (DELETE /ship/v1/shipments/{trackingNumber}) or cancelling a tag (DELETE /ship/v1/tags/{confirmationNumber}) are available to the agent only when you add them. Your rules run on your own instance, so the agent can never reach an operation you have not allowed.
