Skip to content

Logistics

ShipEngine
API integration

Ship Logistics features without building the integration. Full ShipEngine API access via Proxy and 90+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
ShipEngine

Use Cases

Why integrate with ShipEngine

Common scenarios for SaaS companies building ShipEngine integrations for their customers.

01

Embed multi-carrier shipping in your WMS or OMS

Give merchants access to 100+ carriers through a single integration instead of building and maintaining direct connections to USPS, FedEx, UPS, and DHL. Truto handles auth and account connection so your users can bring their own carrier accounts or use ShipEngine's negotiated rates.

02

Offer automated rate shopping at checkout or order creation

Let your platform compare live rates across carriers and services before a label is purchased, so merchants can automatically pick the cheapest or fastest option. This is a high-value differentiator for ERPs, OMSs, and marketplaces that manage fulfillment logic.

03

Power bulk fulfillment for high-volume warehouses

WMS and 3PL platforms can push hundreds of shipments into ShipEngine batches, generate labels asynchronously, and pull combined label documents for thermal printing. This turns a per-order API workflow into a warehouse-scale operation.

04

Deliver real-time tracking and delivery notifications

Subscribe shipments to tracking and receive push events through ShipEngine webhooks instead of polling carrier APIs. Support platforms, marketplaces, and post-purchase experience tools can trigger buyer notifications and status updates in near real time.

05

Reduce failed deliveries with address validation

Validate and normalize addresses globally before an order is confirmed to avoid return-to-sender fees and delivery exceptions. This is a low-effort, high-ROI feature to embed in checkout, order intake, or CS agent workflows.

What You Can Build

Ship these features with Truto + ShipEngine

Concrete product features your team can ship faster by leveraging Truto’s ShipEngine integration instead of building from scratch.

01

Bring-your-own-carrier connection flow

Let end users connect their negotiated FedEx, UPS, or DHL accounts inside your product using ShipEngine's carrier connection endpoints, with credentials managed by Truto.

02

Live rate shopping widget

Call ship_engine_shipments_list_rates or rates_estimate to return a ranked list of carrier options with price and delivery time, then purchase the selected rate with labels_create_from_rate.

03

Bulk label generation and combined PDFs

Create batches, process labels asynchronously via batches_process_labels, and stitch results into a single combined document using create_a_ship_engine_documents_combined_label for warehouse dispatch.

04

End-of-day carrier manifests

Automatically generate SCAN forms with create_a_ship_engine_manifest so drivers can accept all daily shipments with a single barcode scan.

05

Proactive tracking and delivery event pipeline

Register environment webhooks and use trackings_start to subscribe packages, then pipe In Transit, Out for Delivery, and Exception events into your notification or ticketing system.

06

Returns and label voiding workflows

Ship a self-serve returns portal using labels_return, and reclaim postage on unused labels with labels_void and labels_cancel_refund.

SuperAI

ShipEngine AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_ship_engine_account_settings

List all account settings for a ShipEngine account. Returns: default_label_layout, url, event.

list_all_ship_engine_settings_images

List all account images in ShipEngine. Returns: total, page, pages, links, url, event.

create_a_ship_engine_settings_image

Create a new account image in ShipEngine by uploading a base64-encoded image. Returns: label_image_id, name, is_default, image_content_type, image_data, created_at, modified_at, url, event.

get_single_ship_engine_settings_image_by_id

Get a single ShipEngine account image by id. Returns: label_image_id, is_default, image_content_type, image_data, created_at, modified_at, name. Required: id.

update_a_ship_engine_settings_image_by_id

Update a ShipEngine account image by id. Returns an empty 204 response on success. Required: id.

delete_a_ship_engine_settings_image_by_id

Delete a ShipEngine account image by id. Returns an empty 204 response on success. Required: id.

list_all_ship_engine_batches

List ShipEngine batches associated with your account, filterable by status, batch number, and creation/processing date ranges. Returns: label_layout, label_format, batch_id, batch_number, external_batch_id, batch_notes, created_at, processed_at, errors, process_errors, warnings, completed, forms, count, batch_shipments_url, batch_labels_url, batch_errors_url, label_download, form_download,…

create_a_ship_engine_batch

Create a ShipEngine batch from shipment IDs or rate IDs, optionally processing labels immediately by including a process_labels object. Returns: label_layout, label_format, batch_id, batch_number, external_batch_id, batch_notes, created_at, processed_at, errors, process_errors, warnings, completed, forms, count, batch_shipments_url, batch_labels_url, batch_errors_url, label_download,…

get_single_ship_engine_batch_by_id

Get a single ShipEngine batch by id. Returns: label_layout, label_format, batch_id, batch_number, external_batch_id, batch_notes, created_at, processed_at, errors, process_errors, warnings, completed, forms, count, batch_shipments_url, batch_labels_url, batch_errors_url, label_download, form_download, paperless_download, status, resource_url, resource_type. Required: id.

update_a_ship_engine_batch_by_id

Update a ShipEngine batch by id. Returns an empty 204 response on success. Required: id.

delete_a_ship_engine_batch_by_id

Delete a ShipEngine batch by id. Returns an empty 204 response on success. Required: id.

ship_engine_batches_list_errors

List detailed errors for a ShipEngine batch by batch_id. Returns: error, shipment_id, external_shipment_id. Required: batch_id.

ship_engine_batches_add

Add shipments or rates to a ShipEngine batch by batch_id. Returns an empty 204 response on success. Required: batch_id.

ship_engine_batches_remove

Remove shipments or rates from a ShipEngine batch by batch_id. Returns an empty 204 response on success. Required: batch_id.

ship_engine_batches_get_by_external_batch_id

Get a ShipEngine batch by its external batch ID. Returns the full batch object including batch_id, external_batch_id, status, created_at, processed_at, errors, warnings, completed, count, label_download, and label settings. Required: external_batch_id.

ship_engine_batches_process_labels

Process labels for a ShipEngine batch by batch_id, specifying ship date, label format, layout, and display scheme. Returns an empty 204 response on success. Required: batch_id.

list_all_ship_engine_carriers

List all ShipEngine carriers connected to the account. Returns each carrier with carrier_id, carrier_code, account_number, balance, nickname, friendly_name, primary, services, packages, options, connection_status, and additional capability flags.

get_single_ship_engine_carrier_by_id

Get a single ShipEngine carrier by id. Returns the full carrier object including carrier_id, carrier_code, account_number, balance, nickname, friendly_name, primary, services, packages, options, and connection_status. Required: id.

delete_a_ship_engine_carrier_by_id

Disconnect a ShipEngine carrier by id, removing it from the account. Returns an empty 204 response on success. Required: id.

ship_engine_carriers_add_funds

Add funds to a ShipEngine carrier account that requires funding. Returns: balance, resource_url, resource_type. Required: carrier_id, currency, amount.

ship_engine_carriers_list_options

List the advanced options available for a specific ShipEngine carrier. Returns: options, resource_url, resource_type. Required: carrier_id.

ship_engine_carriers_list_packages

List the package types supported by a specific ShipEngine carrier. Returns each package with package_id, package_code, name, dimensions, and description. Required: carrier_id.

ship_engine_carriers_list_services

List the shipping services offered by a specific ShipEngine carrier. Returns each service with carrier_id, carrier_code, service_code, name, domestic, international, is_multi_package_supported, and is_return_supported. Required: carrier_id.

create_a_ship_engine_connections_carrier

Connect a carrier account in ShipEngine. The request body fields vary by carrier_name (e.g. username/password for Access Worldwide, account_number for DHL Express, address and contact fields for FedEx). Returns: carrier_id, url, event. Required: carrier_name.

delete_a_ship_engine_connections_carrier_by_id

Disconnect a carrier in ShipEngine by carrier name and id. Returns an empty 204 response on success. Required: id, carrier_name.

ship_engine_connections_carriers_list_settings

Get carrier settings in ShipEngine by carrier name and carrier id. Returns: resource_url, resource_type.g. smart_post_hub for FedEx, use_negotiated_rates for UPS). Required: carrier_name, carrier_id.

ship_engine_connections_carriers_bulk_update

Update carrier settings in ShipEngine by carrier name and carrier id. The request body fields vary by carrier_name (e.g. pickup_type and smart_post_hub for FedEx, use_negotiated_rates and invoice for UPS, include_barcode_with_order_number for Newgistics). Returns an empty 204 response on success. Required: carrier_name, carrier_id.

create_a_ship_engine_documents_combined_label

Create a combined label PDF in ShipEngine from up to 30 existing labels. Returns: label_download. Only PDF format is currently supported; combined labels are limited to 30 single-page labels similar in size to USPS labels.

list_all_ship_engine_downloads

Download a ShipEngine label or file as binary content. Returns the raw binary file in PDF, PNG, or ZPL format depending on the label being downloaded. Optional: download, rotation. Required: subdir, filename, dir.

list_all_ship_engine_environment_webhooks

List all ShipEngine webhooks currently enabled for the account. Returns: webhook_id, url, event, headers, name, store_id.

create_a_ship_engine_environment_webhook

Create a ShipEngine webhook for specific events in the environment. Returns: webhook_id, url, event, headers, name, store_id. Required: event, url.

get_single_ship_engine_environment_webhook_by_id

Get a single ShipEngine webhook by id. Returns: webhook_id, url, event, headers, name, store_id. Required: id.

update_a_ship_engine_environment_webhook_by_id

Update a ShipEngine webhook's url, headers, name, or store_id by id. Returns an empty 204 response on success. Required: id.

delete_a_ship_engine_environment_webhook_by_id

Delete a ShipEngine webhook by id. Returns an empty 204 response on success. Required: id.

list_all_ship_engine_labels

List ShipEngine shipping labels with optional filters by status, carrier, service, warehouse, tracking number, batch, and date range. Returns: label_id, status, shipment_id, external_shipment_id, external_order_id, ship_date, created_at, shipment_cost, insurance_cost, tracking_number, is_return_label, rma_number, is_international, batch_id, carrier_id, service_code, package_code, voided,…

create_a_ship_engine_label

Purchase and print a ShipEngine shipping label for a shipment. Returns the created label including label_id, status, tracking_number, shipment_cost, label_download, carrier_id, service_code, and ship_date.

get_single_ship_engine_label_by_id

Get a single ShipEngine label by id. Returns the full label object including label_id, status, shipment_id, ship_date, shipment_cost, tracking_number, label_download, and more. The optional label_download_type query parameter controls whether the label is returned as a URL or inline Base64. Required: id.

ship_engine_labels_get_by_external_shipment_id

Get a ShipEngine label by the external shipment ID that was used during label creation. Returns: label_id, status, shipment_id, external_shipment_id, external_order_id, shipment, ship_date, created_at, shipment_cost, insurance_cost, requested_comparison_amount, rate_details, tracking_number, is_return_label, rma_number, is_international, batch_id, carrier_id, charge_event, outbound_label_id,…. Required: external_shipment_id.

ship_engine_labels_create_from_rate

Purchase a shipping label in ShipEngine from a previously obtained rate_id, avoiding the need to resubmit shipment details. Returns: label_id, status, shipment_id, external_shipment_id, external_order_id, shipment, ship_date, created_at, shipment_cost, insurance_cost, requested_comparison_amount, rate_details, tracking_number, is_return_label, rma_number, is_international, batch_id, carrier_id,…. Required: rate_id.

ship_engine_labels_create_from_rate_shopper

Purchase Label from Rate Shopper. Returns: label_id, status, shipment_id, external_shipment_id, external_order_id, shipment, ship_date, created_at. Required: rate_shopper_id, shipment.

ship_engine_labels_create_from_shipment

Purchase a ShipEngine shipping label from an existing shipment by its shipment ID. Returns: label_id, status, shipment_id, external_shipment_id, external_order_id, shipment, ship_date, created_at, shipment_cost, insurance_cost, requested_comparison_amount, rate_details, tracking_number, is_return_label, rma_number, is_international, batch_id, carrier_id, charge_event, outbound_label_id,…. Required: shipment_id.

ship_engine_labels_return

Create a return label for an existing outbound ShipEngine label. You can optionally specify a custom RMA number; if omitted, one is auto-generated. Returns the created label object including label_id, status, tracking_number, shipment_cost, label_download, and charge_event. Required: label_id.

ship_engine_labels_track

Track a ShipEngine label by label_id to retrieve real-time tracking information. Returns: tracking_number, tracking_url, status_code, status_detail_code, carrier_code, carrier_id, status_description, status_detail_description, carrier_status_code, carrier_detail_code, carrier_status_description, ship_date, estimated_delivery_date, actual_delivery_date, exception_description, events, label_url,…. Required: label_id.

ship_engine_labels_void

Void a ShipEngine label by label_id to request a refund for the unused label. Returns: approved, message, reason_code, label_id, status, shipment_id, ship_date, created_at, shipment_cost, insurance_cost, tracking_number, is_return_label, is_international, batch_id, carrier_id, service_code, package_code, voided, label_format, label_layout, trackable, carrier_code, tracking_status, label_download,…. Required: label_id.

ship_engine_labels_cancel_refund

Cancel a scheduled refund request for a ShipEngine label. Only labels with refund status "request_scheduled" can be excluded from an upcoming refund request. Returns the updated label object including label_id, status, shipment_id, tracking_number, and label_download. Required: label_id.

list_all_ship_engine_manifests

List ShipEngine manifests, optionally filtered by warehouse, carrier, ship date range, creation date range, or specific label ids. Returns: manifests, total, page, pages, links.

create_a_ship_engine_manifest

Create a ShipEngine manifest for a specific warehouse by providing carrier_id, warehouse_id, and ship_date, or alternatively by providing a list of label_ids. Returns: manifests, manifest_requests, manifest_id, form_id, created_at, ship_date, shipments, warehouse_id, submission_id, carrier_id, manifest_download, label_ids, request_id, errors, url, event.

get_single_ship_engine_manifest_by_id

Get a single ShipEngine manifest by id. Returns: manifest_id, form_id, created_at, ship_date, shipments, label_ids, warehouse_id, submission_id, carrier_id, manifest_download. Required: id.

ship_engine_manifests_get_request

Get the status and results of a ShipEngine manifest creation request by request_id. Returns: manifests, manifest_requests, manifest_id, form_id, created_at, ship_date, shipments, warehouse_id, submission_id, carrier_id, manifest_download, label_ids, request_id, errors. Required: request_id.

list_all_ship_engine_packages

List custom package types associated with the ShipEngine account. Returns a packages array where each item includes package_id, package_code, name, dimensions, and description.

create_a_ship_engine_package

Create a custom package type in ShipEngine for accurate rate estimates. Returns: package_id, package_code, name, dimensions, description, url, event. Required: package_code, name.

get_single_ship_engine_package_by_id

Get a single ShipEngine custom package type by id. Returns: package_id, package_code, name, dimensions, description. Required: id.

update_a_ship_engine_package_by_id

Update a ShipEngine custom package type by id. Returns an empty 204 response on success. Required: id, package_code, name.

delete_a_ship_engine_package_by_id

Delete a ShipEngine custom package type by id. Returns an empty 204 response on success. Required: id.

list_all_ship_engine_pickups

List scheduled pickups in ShipEngine, optionally filtered by carrier, warehouse, or creation date range. Returns each pickup with pickup_id, label_ids, created_at, carrier_id, confirmation_number, and pickup_windows.

create_a_ship_engine_pickup

Schedule a package pickup with a carrier in ShipEngine. Returns the created pickup including pickup_id, label_ids, created_at, carrier_id, confirmation_number, pickup_address, and contact_details.

get_single_ship_engine_pickup_by_id

Get a single scheduled pickup by id in ShipEngine. Returns the pickup including pickup_id, label_ids, created_at, carrier_id, confirmation_number, pickup_address, contact_details, and pickup_window. Required: id.

delete_a_ship_engine_pickup_by_id

Delete a previously-scheduled pickup by id in ShipEngine. Returns: request_id, errors, pickup_id. Required: id.

create_a_ship_engine_rate

Calculate shipping rates for a shipment in ShipEngine by providing either an existing shipment_id or a full shipment object with carrier, service, origin, and destination details. Returns: shipment_id, carrier_id, service_code, shipping_rule_id, external_order_id, items, tax_identifiers, external_shipment_id, shipment_number, ship_date, created_at, modified_at, shipment_status, ship_to,…

ship_engine_rates_bulk_create

Get bulk shipping rates for multiple ShipEngine shipments in a single request. Returns an array of rate results, each containing rate_request_id, shipment_id, created_at, status, and errors.

get_single_ship_engine_rate_by_id

Get a previously queried ShipEngine rate by id. Returns the rate response body including rate_request_id, shipment_id, status, created_at, rates, invalid_rates, and errors. Required: id.

ship_engine_rates_estimate

Estimate ShipEngine shipping rates from origin/destination addresses, package weight, and ship date. Returns rate estimates with rate_type, carrier_id, shipping_amount, delivery_days, and estimated_delivery_date.

get_single_ship_engine_service_point_by_id

Get a single ShipEngine carrier service point by id. Returns the service_point object including carrier_code, service_point_id, address_line1, city_locality, hours_of_operation, features, and type. Required: id, carrier_code, country_code.

list_all_ship_engine_service_points

List ShipEngine carrier service points by location. Caller must provide exactly one of address_query, address, or lat/long pair. Returns: lat, long, service_points, errors, url, event.

list_all_ship_engine_shipments

List ShipEngine shipments with optional filtering by shipment status, batch ID, tag, creation/modification date range, and sales order ID. Returns each shipment with shipment_id, carrier_id, service_code, shipment_status, ship_date, ship_to, ship_from, packages, total_weight, created_at, and modified_at.

create_a_ship_engine_shipment

Create Shipments. Returns: shipment_id, carrier_id, service_code, shipping_rule_id, external_order_id, items, tax_identifiers, external_shipment_id. Required: shipments.

get_single_ship_engine_shipment_by_id

Get a single ShipEngine shipment by id. Returns the full shipment object including shipment_id, carrier_id, service_code, ship_date, shipment_status, ship_to, ship_from, packages, and total_weight. Required: id.

update_a_ship_engine_shipment_by_id

Update a shipment in ShipEngine by its shipment id. Returns the updated shipment object including shipment_id, carrier_id, service_code, shipment_status, ship_date, created_at, ship_to, ship_from, packages, and total_weight. Required: id.

ship_engine_shipments_list_tags

Get the list of tags associated with a ShipEngine shipment by its ID. Returns an array of tag strings. Required: shipment_id.

ship_engine_shipments_cancel

Cancel a ShipEngine shipment by marking it as cancelled. Any associated labels must be voided first. Returns an empty 204 response on success. Required: shipment_id.

ship_engine_shipments_get_by_external_shipment_id

Get a ShipEngine shipment by its external shipment ID. Returns the full shipment object including shipment_id, carrier_id, service_code, ship_date, created_at, modified_at, shipment_status, ship_to, ship_from, packages, total_weight, and tags. Required: external_shipment_id.

ship_engine_shipments_recognize

Parse unstructured text to extract shipping data using ShipEngine's shipment-recognition API. Returns a confidence score, a parsed shipment object with carrier_id, service_code, ship_to, ship_from, and packages, plus recognized entities. Shipment recognition is currently supported for the US, Canada, Australia, New Zealand, the UK, and Ireland. Required: text.

ship_engine_shipments_list_rates

Get shipping rates for a ShipEngine shipment by shipment ID. Returns: rate_id, rate_type, carrier_id, shipping_amount, insurance_amount, confirmation_amount, other_amount, requested_comparison_amount, tax_amount, rate_details, zone, package_type, delivery_days, guaranteed_service, estimated_delivery_date, carrier_delivery_days, ship_date, negotiated_rate, service_type, service_code, trackable,…. Required: shipment_id.

ship_engine_shipments_add_tag

Add a tag to a ShipEngine shipment. Returns: tags, resource_url, resource_type. Required: shipment_id, tag_name.

ship_engine_shipments_remove_tag

Remove an existing tag from a ShipEngine shipment. Returns an empty 204 response on success. Required: shipment_id, tag_name.

ship_engine_shipments_bulk_update

Update tags on one or more ShipEngine shipments in bulk. Returns an empty 204 response on success.

list_all_ship_engine_tags

List all ShipEngine tags associated with an account. Returns: tag_id, name, color.

create_a_ship_engine_tag

Create a new ShipEngine tag for customizing how you track shipments. Returns the created tag including tag_id, name, and color. Required: name.

delete_a_ship_engine_tag_by_id

Delete a ShipEngine tag that is no longer needed. Returns an empty 204 response on success. Required: id.

ship_engine_tags_rename

Rename a ShipEngine tag while keeping the relevant shipments attached to it. Returns an empty 204 response on success. Required: tag_id, new_tag_name.

create_a_ship_engine_tokens_ephemeral

Create an ephemeral token in ShipEngine for authorized application access. Returns: token, redirect_url. The token expires in 10 seconds.

list_all_ship_engine_trackings

Retrieve package tracking information from ShipEngine by carrier and tracking number. Returns: tracking_number, tracking_url, status_code, status_detail_code, carrier_code, carrier_id, status_description, status_detail_description, carrier_status_code, carrier_detail_code, carrier_status_description, ship_date, estimated_delivery_date, actual_delivery_date, exception_description, events,…

ship_engine_trackings_start

Subscribe to tracking updates for a package in ShipEngine and receive webhook notifications whenever the shipping status changes. Provide carrier_code and tracking_number, or carrier_id, to identify the package. Returns an empty 204 response on success.

ship_engine_trackings_stop

Unsubscribe from tracking updates for a package in ShipEngine, stopping webhook notifications for shipping status changes. Provide carrier_code and tracking_number, or carrier_id, to identify the package. Returns an empty 204 response on success.

list_all_ship_engine_warehouses

List Warehouses. Returns: warehouses.

create_a_ship_engine_warehouse

Create Warehouse. Returns: warehouse_id, is_default, name, created_at, origin_address, return_address.

get_single_ship_engine_warehouse_by_id

Get Warehouse By Id. Returns: warehouse_id, is_default, name, created_at, origin_address, return_address. Required: id.

update_a_ship_engine_warehouse_by_id

Update Warehouse By Id. Required: id.

delete_a_ship_engine_warehouse_by_id

Delete Warehouse By ID. Required: id.

ship_engine_warehouses_bulk_update

Update Warehouse Settings. Required: warehouse_id.

ship_engine_addresses_recognize

Parse unstructured text to extract a structured shipping address in ShipEngine. Returns: score, address, entities. Supported for the US, Canada, Australia, New Zealand, the UK, and Ireland. Required: text.

ship_engine_addresses_validate

Validate one or more addresses in ShipEngine by cross-referencing multiple databases to verify deliverability. Returns an array of results, each with status, original_address, matched_address, and messages.

ship_engine_shipsurance_add_funds

Add funds to a Shipsurance insurance account in ShipEngine. Returns: currency, amount. Required: currency, amount.

ship_engine_shipsurance_list_balances

Retrieve the balance of your Shipsurance insurance account in ShipEngine. The response is a monetary value object. Returns: currency, amount.

ship_engine_shipsurance_connect

Connect a Shipsurance account to ShipEngine. Returns an empty object on success. Required: email, policy_id.

ship_engine_shipsurance_disconnect

Disconnect a Shipsurance account from ShipEngine. Returns an empty object on success.

Why Truto

Why use Truto’s MCP server for ShipEngine

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 750+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with ShipEngine in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s ShipEngine account

Use Truto’s frontend SDK to connect your customer’s ShipEngine account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call ShipEngine

Truto’s Proxy API is a 1-to-1 mapping of the ShipEngine API. You call us, we call ShipEngine, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate ShipEngine’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about ShipEngine on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for ShipEngine through Truto?

ShipEngine uses API key authentication. Truto securely stores and injects each end user's API key on every request, so you don't need to build key management, rotation, or storage yourself.

Can end users connect their own negotiated carrier accounts?

Yes. Using create_a_ship_engine_connections_carrier and the connections_carriers_list_settings and bulk_update tools, you can let users link their own FedEx, UPS, DHL, or other carrier accounts inside your product, or default to ShipEngine's pre-negotiated rates.

How do I get real-time tracking updates without polling?

Register a webhook via create_a_ship_engine_environment_webhook and subscribe packages using ship_engine_trackings_start. ShipEngine will push tracking events to your endpoint, which Truto can normalize and forward into your system.

What label formats are supported?

ShipEngine returns labels in PDF, PNG, and ZPL, making it usable for both browser downloads and direct thermal printer workflows in warehouses. The format is specified when calling create_a_ship_engine_label or labels_create_from_rate.

How do bulk operations work for high-volume fulfillment?

Use create_a_ship_engine_batch to group shipments, batches_add and batches_remove to manage contents, and batches_process_labels to generate labels asynchronously. batches_list_errors surfaces per-shipment failures without breaking the whole batch.

Can I look up shipments and labels using my own IDs?

Yes. ShipEngine supports external identifiers via ship_engine_shipments_get_by_external_shipment_id, ship_engine_labels_get_by_external_shipment_id, and ship_engine_batches_get_by_external_batch_id, so you don't have to store ShipEngine's internal IDs.

ShipEngine

Get ShipEngine integrated into your app

Our team understands what it takes to make a ShipEngine integration successful. A short, crisp 30 minute call with folks who understand the problem.