Connect AfterShip to Fondoo

Live4 min readUpdated

AfterShip tracks parcels across hundreds of carriers. Connecting it lets your AI agent register shipments with AfterShip and read their tracking status, so it can answer "where is my order?" questions with real carrier data. This connector is tracking only. It does not quote rates or buy labels.

What Fondoo can do with it

The AfterShip connector has two actions:

ActionWhat it doesAfterShip call
tracking.get (read)Reads one tracking by its AfterShip tracking IDGET /trackings/{id}
tracking.create (write)Registers a new tracking from the details you supply, such as the tracking number and courier slugPOST /trackings

Your agent uses them through:

  • get_shipment_tracking({connectionId, tracking:{id:"<AfterShip tracking ID>"}})
  • connector_action({connectionId, action:"tracking.create", input:{data:{...}}})

Things to know:

  • The id is AfterShip's own tracking ID, not the carrier tracking number. AfterShip generates it when the tracking is created, unless you set a custom one. Keep the ID that tracking.create returns.
  • No rates or labels. Fondoo's get_shipping_rates and buy_shipping_label list AfterShip as a possible provider, but this connector rejects those actions with "Unsupported connector capability". Use Shippo or ShipStation for labels.
  • Approval: neither action is a money or destructive action, so neither needs owner approval. Agents need Fondoo's commerce:read scope to read and commerce:write scope to create. Every call is audited.

Before you start

  • An AfterShip Tracking account on a plan with API access. AfterShip's help center lists the API under its Premium and Enterprise plans (AfterShip API overview). Check AfterShip's pricing page for current prices and shipment quotas. Each tracking you create usually counts toward your plan's shipment quota.
  • Admin access to the AfterShip organization, so you can create API keys.
  • A Fondoo site to attach the connection to.

Step by step: get your credentials

Fondoo needs one value: an AfterShip API key.

  1. Sign in to AfterShip and open Settings → API keys in your Tracking admin (how to generate an API key). AfterShip's SDK also links key management at https://organization.automizely.com/api-keys . The exact menu may be in your organization settings rather than the Tracking app.
  2. Select Create API key and enter a name, for example "Fondoo".
  3. AfterShip asks you to "select an appropriate signature header and set admin API permissions". Grant Tracking access with read and write. Fondoo needs to read and create trackings. The exact names of these options could not be confirmed, so pick the read/write option for Tracking.
  4. Select Save and copy the key.

Fondoo sends the key in the as-api-key header, which AfterShip requires for API versions 2023-10 and later. Fondoo uses version 2026-07, the latest version AfterShip lists (versioning).

Connect it in Fondoo

In the dashboard:

  1. Open Connections and find AfterShip under Available → Shipping. You can type "AfterShip" in Find a tool.
  2. Click Use a key, then Open secure key entry.
  3. Paste the key into the apiKey field and click Save connection securely. The page expires after 15 minutes and works once.
  4. Back in Connections, click Check connection on the AfterShip card.

By asking your agent. For example:

"Connect AfterShip so you can track our parcels."

The agent calls add_connection_key({provider:"aftership", siteId}) without fields. Fondoo returns a secure paste link for you to open. Never paste the key into chat: if a key is sent in fields, Fondoo warns that it may stay in chat logs. The agent can also call connect_service({provider:"aftership", siteId}) to send you a signed 15-minute instruction link. When you have saved the key, the agent runs test_connection({connectionId}).

REST equivalent: POST https://api.getfondoo.com/v1/ops/add_connection_key with Authorization: Bearer <your Fondoo key> and the body {"provider":"aftership","siteId":"<site UUID>"}. Then call POST /v1/ops/test_connection with {"connectionId":"..."}.

Test that it works

  1. test_connection calls AfterShip's GET /couriers. A status of connected means the key works.
  2. Write access is listed as unknown until it is used, because a read cannot prove write permission.
  3. To check end to end, create a tracking for a real parcel with tracking.create. Then read it back with get_shipment_tracking using the returned ID.

Troubleshooting

  • Status invalid or "Provider request failed (401)". The key is wrong or was deleted. AfterShip reports this as API_KEY_INVALID. Create a new key and use rotate_connection_key.
  • "Provider request failed (403)". The key exists but is refused. This usually means it lacks Tracking write permission or your plan has no API access.
  • "Provider request failed (404)" on tracking.get. You passed a carrier tracking number instead of the AfterShip tracking ID. The old /trackings/{slug}/{number} routes were removed in version 2024-10.
  • "Provider request failed (429)" or "Connector rate budget exhausted". AfterShip limits each endpoint separately, for example 5 requests per second for GET /trackings/{id} and 20 per second for POST /trackings (rate limits). Fondoo also limits each connection to about 60 actions per minute.
  • "Unsupported connector capability". You asked for rates or a label. AfterShip here is tracking only.

Limits, data and security

  • What Fondoo stores: your key, encrypted, plus the connection status, last test result and last-use time. list_connections shows the key as [redacted]. Tracking data is passed back to the caller; when it is used for an order, only a minimal status is kept for the public tracking page.
  • Rotate: create a new key in AfterShip, then call rotate_connection_key({connectionId}) without fields to get a secure paste link. You can set expiresAt or rotateAfter when adding a key, and Fondoo will remind you before it is due.
  • Disconnect: delete_connection({connectionId}) removes the stored key. Agents need your approval. Delete the key in AfterShip too: Fondoo does not revoke it for you.