npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@nodrel-dev/n8n-nodes-fedex

v0.2.2

Published

n8n community node for the FedEx REST API — track shipments, get rates, create shipping labels, and validate addresses directly against your own FedEx account.

Downloads

1,151

Readme

📦 n8n-fedex-node

Use the FedEx REST API directly in your n8n workflows.

Track shipments · validate addresses · quote rates · create labels — against your own FedEx account, with no aggregator in the middle.

npm version npm downloads CI license: MIT published with provenance

Installation · Operations · Credentials · Usage · npm · FedEx Developer Portal · Report an issue

What is this?

This is an n8n community node for the FedEx REST API. It lets your workflows track shipments, validate addresses, quote rates, and create shipping labels — talking straight to FedEx with your own API credentials.

Because there's no aggregator in the middle, you get your own negotiated rates and FedEx bills your account directly. n8n is a fair-code licensed workflow automation platform.

Highlights

  • 🚚 Direct to FedEx — your API keys, your negotiated rates, your account billed. No aggregator markup or middleman.
  • 🏷️ Labels as real binary — Create returns a print-ready PDF / PNG / ZPL / EPL label as n8n binary data, not a base64 blob buried in JSON.
  • 🔀 One sandbox / production switch — a single credential field repoints every API request and the OAuth token URL together, so a call can never straddle environments.
  • 🔐 Native OAuth2, no token code — n8n performs the client-credentials exchange and refreshes the ~1 hour token for you.
  • 📦 Zero runtime dependencies — ships only dist/, published to npm with signed provenance and scanned on every push by Dependabot and Snyk.

Who it's for

  • E-commerce & retail — print labels at fulfillment, surface tracking to customers, and rate-shop services per order.
  • 3PLs & fulfillment ops — automate shipping for many accounts and wire labels into existing pick-and-pack flows.
  • Finance & operations teams — quote live negotiated rates inside approval and reconciliation workflows.
  • Developers & integrators — embed FedEx tracking, address validation, and labels into any n8n automation without hand-rolling OAuth.

How it works

The node sits between your workflow and FedEx. A single FedEx OAuth2 credential holds your API key/secret and the sandbox-or-production switch; n8n handles the token exchange, and every request is routed to the matching FedEx host.

flowchart LR
    subgraph wf["n8n workflow"]
        prev["Upstream node"] --> fedex["FedEx node"]
        fedex --> down["Downstream node<br/>(Write Binary File,<br/>Send Email, …)"]
    end

    cred["FedEx OAuth2 credential<br/>API Key + Secret Key<br/>Sandbox / Production"]
    cred -. "n8n exchanges and refreshes token" .-> fedex

    fedex -->|"HTTPS + bearer token"| api["FedEx REST API<br/>(your account and rates)"]

Installation

Follow the installation guide in the n8n community nodes documentation. In n8n, go to Settings → Community Nodes → Install and enter @nodrel-dev/n8n-nodes-fedex.

Operations

The node exposes two resources: Shipment and Address.

flowchart TD
    node["FedEx node"]
    node --> shipment["📦 Shipment"]
    node --> address["📍 Address"]

    shipment --> track["Track<br/>POST /track/v1/trackingnumbers"]
    shipment --> rates["Get Rates<br/>POST /rate/v1/rates/quotes"]
    shipment --> create["Create<br/>POST /ship/v1/shipments"]
    address --> validate["Validate<br/>POST /address/v1/addresses/resolve"]

Shipment

  • Track — Get the status and scan history for one or more tracking numbers (POST /track/v1/trackingnumbers). Toggle Track Multiple Numbers to pass a comma-separated list, and Include Detailed Scans for the full scan event history.
  • Get Rates — Quote negotiated and list rates for available services (POST /rate/v1/rates/quotes). Leave Service Type as All Available Services to compare every eligible service, or pin a single one. Requires a Shipping Account Number.
  • Create — Buy a shipment and get a printable label plus tracking number (POST /ship/v1/shipments). The label is returned as n8n binary data (see Usage). Requires a Shipping Account Number.

Address

  • Validate — Standardize an address and classify it residential vs commercial (POST /address/v1/addresses/resolve).

Credentials

You authenticate with a FedEx API Key and Secret Key using OAuth2 client-credentials. n8n performs the token exchange and refreshes the ~1 hour token automatically — you never handle tokens yourself.

Prerequisites

  1. Create a free account on the FedEx Developer Portal.
  2. Create a project and add the APIs you need (Track, Address Validation, Rate, Ship).
  3. The portal issues an API Key (client ID) and Secret Key (client secret) for both a test/sandbox project and, once approved, a production project.
  4. For Get Rates and Create you also need your FedEx shipping account number.

Two credential types (one per FedEx project)

The FedEx Developer Portal provisions the Track API in a different group from the shipping APIs (Rate, Ship, Address Validation), so a single portal project usually cannot hold all four — each project issues its own API Key / Secret Key. The node mirrors this with two credential types, and each operation automatically uses the right one:

  • FedEx Track OAuth2 API → from the project that has the Track API → used by Track.
  • FedEx Shipping OAuth2 API → from the project that has Rate + Ship + Address Validation → used by Get Rates, Create, and Validate.

If your portal account provisions all four APIs in one project, use the same API Key / Secret Key in both credentials.

Set up a credential in n8n

  1. Add a new FedEx Track OAuth2 API or FedEx Shipping OAuth2 API credential (the node shows the right field per operation).
  2. Set Environment to Sandbox (Test) while developing, or Production (Live) for real shipments. This single switch points both the OAuth token URL and every API request at the matching FedEx host, so a request can never straddle sandbox and production.
  3. Enter your Client ID (FedEx API Key) and Client Secret (FedEx Secret Key).
  4. Save — n8n runs the credential test against that API and shows a green confirmation when the keys are valid.

Sandbox vs production: credentials default to Sandbox on purpose, so a half-configured connection can't hit a live account. Switch to Production only when you are ready to create real, billable shipments.

Production: Create (Ship) requires FedEx label certification

Sandbox label creation works immediately. Production is different: before FedEx authorizes your production credentials to transmit live label transactions, you must complete the FedEx Shipper Validation process — generate sample labels, submit them to the FedEx Bar Code Analysis group, and wait for approval (about a three-business-day turnaround). Approval is per project. Track, Get Rates, and Validate do not require this; only Ship does.

Compatibility

  • Requires n8n with n8nNodesApiVersion: 1.
  • Built and tested against the FedEx REST API (Track v1, Address v1, Rate v1, Ship v1).
  • The shipping account number is never defaulted or hardcoded — it always comes from the node field, and your API keys live only in the credential.

Security & dependencies

The published package ships only dist/ with zero runtime dependencies (n8n-workflow is a peer, provided by your n8n instance). Any pnpm audit / Dependabot findings are confined to the build, test, and release tooling or the host-provided peer — none of them reach an installed node. Outstanding upstream advisories (waiting on newer @n8n/node-cli and n8n-workflow releases) are tracked in #2.

The repository is continuously scanned for vulnerabilities by both Dependabot and Snyk — Snyk checks dependencies and source on every push and pull request, so each release commit is scanned before it ships.

Every release is published to npm with a signed provenance attestation through GitHub Actions OIDC trusted publishing: no long-lived npm token is stored in the repo, and anyone can cryptographically verify that a given version was built by this workflow from this exact commit (see the Provenance panel on the npm page).

Usage

Get Rates and Create

Both operations share the same Shipper and Recipient address/contact fields, so values carry over when you switch between them. Package dimensions (length/width/height) are optional and only sent to FedEx when all three are greater than zero.

The label binary (Create)

Create returns the label as proper n8n binary data on the output property named label — not a base64 string buried in JSON. Under the hood, the node requests an inline base64 label, decodes it, and attaches it as binary so downstream nodes can print or save it directly:

sequenceDiagram
    participant WF as n8n workflow
    participant Node as FedEx node
    participant Auth as OAuth2 (n8n-managed)
    participant API as FedEx Ship API

    WF->>Node: Execute "Create"
    Node->>Auth: Need access token
    Auth-->>Node: Cached / refreshed token (~1h)
    Node->>API: POST /ship/v1/shipments<br/>(labelResponseOptions: LABEL)
    API-->>Node: JSON + base64 encodedLabel
    Node->>Node: Decode base64 →<br/>attach as binary "label"
    Node-->>WF: JSON (tracking #, rates)<br/>+ binary label

Choose the format with Label Format:

| Label Format | MIME type | Typical use | |---|---|---| | PDF | application/pdf | Office printers | | PNG | image/png | Preview / embedding | | Thermal (ZPLII) | application/octet-stream | Zebra thermal printers | | Thermal (EPL2) | application/octet-stream | Eltron thermal printers |

The tracking number and rate details are passed through on the main JSON output. Wire the label binary into Write Binary File, Send Email (as an attachment), or any node that consumes binary data.

Errors and Continue On Fail

FedEx error messages (errors[].message) are surfaced directly through n8n's error handling, and the node honors Continue On Fail — failed items emit an error entry and the workflow keeps processing the rest.

Documentation

Deeper docs for contributors and integrators live in docs/:

Resources

Version history

See CHANGELOG.md for the full, per-release history (kept current automatically on each release).