All integrations

ShipEngine

BUSINESS · COMMERCE & FINANCE

Rates, labels, tracking, and address validation on that account’s own key.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

shipengine_delete_v1_account_settings_images_by_label_image_idWRITE

Delete Account Image By Id via DELETE /v1/account/settings/images/{label_image_id}

api
shipengine_delete_v1_batches_by_batch_idWRITE

Delete Batch By Id via DELETE /v1/batches/{batch_id}

api
shipengine_delete_v1_carriers_by_carrier_idWRITE

Disconnect a Carrier of the given ID from the account via DELETE /v1/carriers/{carrier_id}

api
shipengine_delete_v1_connections_carriers_by_carrier_name_by_carrier_idWRITE

Disconnect a carrier via DELETE /v1/connections/carriers/{carrier_name}/{carrier_id}

api
shipengine_delete_v1_connections_insurance_shipsuranceWRITE

Disconnect a Shipsurance Account via DELETE /v1/connections/insurance/shipsurance

api
shipengine_delete_v1_environment_webhooks_by_webhook_idWRITE

Delete a webhook via DELETE /v1/environment/webhooks/{webhook_id}

api
shipengine_delete_v1_packages_by_package_idWRITE

Delete a custom package using the ID via DELETE /v1/packages/{package_id}

api
shipengine_delete_v1_pickups_by_pickup_idWRITE

Delete a previously-scheduled pickup by ID via DELETE /v1/pickups/{pickup_id}

api
shipengine_delete_v1_shipments_by_shipment_id_tags_by_tag_nameWRITE

Remove an existing tag from the Shipment object via DELETE /v1/shipments/{shipment_id}/tags/{tag_name}

api
shipengine_delete_v1_tags_by_tag_nameWRITE

Delete a tag that is no longer needed via DELETE /v1/tags/{tag_name}

api
shipengine_delete_v1_warehouses_by_warehouse_idWRITE

Delete a warehouse by ID via DELETE /v1/warehouses/{warehouse_id}

api
shipengine_get_v1_account_settingsREAD

List all account settings for the ShipEngine account via GET /v1/account/settings

api
shipengine_get_v1_account_settings_imagesREAD

List all account images for the ShipEngine account via GET /v1/account/settings/images

api
shipengine_get_v1_account_settings_images_by_label_image_idREAD

Retrieve information for an account image. via GET /v1/account/settings/images/{label_image_id}

api
shipengine_get_v1_batchesREAD

List Batches associated with your Shipengine account via GET /v1/batches

api
shipengine_get_v1_batches_by_batch_idREAD

Get Batch By ID via GET /v1/batches/{batch_id}

api
shipengine_get_v1_batches_by_batch_id_errorsREAD

Error handling in batches are handled differently than in a single synchronous request. You must retrieve the status of your batch by [getting a batch](https://www.shipengine.com/docs/reference/get-batch-by-id/) and getting an overview of the statuses or you can list errors directly here below to get detailed information about the errors. via GET /v1/batches/{batch_id}/errors

api
shipengine_get_v1_batches_external_batch_id_by_external_batch_idREAD

Get Batch By External ID via GET /v1/batches/external_batch_id/{external_batch_id}

api
shipengine_get_v1_carriersREAD

List all carriers that have been added to this account via GET /v1/carriers

api
shipengine_get_v1_carriers_by_carrier_idREAD

Retrive carrier info by ID via GET /v1/carriers/{carrier_id}

api
shipengine_get_v1_carriers_by_carrier_id_optionsREAD

Get a list of the options available for the carrier via GET /v1/carriers/{carrier_id}/options

api
shipengine_get_v1_carriers_by_carrier_id_packagesREAD

List the package types associated with the carrier via GET /v1/carriers/{carrier_id}/packages

api
shipengine_get_v1_carriers_by_carrier_id_servicesREAD

List the services associated with the carrier ID via GET /v1/carriers/{carrier_id}/services

api
shipengine_get_v1_connections_carriers_by_carrier_name_by_carrier_id_settingsREAD

Get carrier settings via GET /v1/connections/carriers/{carrier_name}/{carrier_id}/settings

api
shipengine_get_v1_environment_webhooksREAD

List all webhooks currently enabled for the account. via GET /v1/environment/webhooks

api
shipengine_get_v1_environment_webhooks_by_webhook_idREAD

Retrieve individual webhook by an ID via GET /v1/environment/webhooks/{webhook_id}

api
shipengine_get_v1_insurance_shipsurance_balanceREAD

Retrieve the balance of your Shipsurance account. via GET /v1/insurance/shipsurance/balance

api
shipengine_get_v1_labelsREAD

This endpoint returns a list of labels that you've [created](https://www.shipengine.com/docs/labels/create-a-label/). You can optionally filter the results as well as control their sort order and the number of results returned at a time. By default, all labels are returned, 25 at a time, starting with the most recently created ones. You can combine multiple filter options to narrow-down the results. For example, if you only want to get your UPS labels for your east coast warehouse you could query by both `warehouse_id` and `carrier_id` via GET /v1/labels

api
shipengine_get_v1_labels_by_label_idREAD

Retrieve information for individual labels. via GET /v1/labels/{label_id}

api
shipengine_get_v1_labels_by_label_id_trackREAD

Retrieve the label's tracking information via GET /v1/labels/{label_id}/track

api
shipengine_get_v1_labels_external_shipment_id_by_external_shipment_idREAD

Find a label by using the external shipment id that was used during label creation via GET /v1/labels/external_shipment_id/{external_shipment_id}

api
shipengine_get_v1_manifestsREAD

Similar to querying shipments, we allow you to query manifests since there will likely be a large number over a long period of time. via GET /v1/manifests

api
shipengine_get_v1_manifests_by_manifest_idREAD

Get Manifest By Id via GET /v1/manifests/{manifest_id}

api
shipengine_get_v1_manifests_requests_by_manifest_request_idREAD

Get Manifest Request By Id via GET /v1/manifests/requests/{manifest_request_id}

api
shipengine_get_v1_packagesREAD

List the custom package types associated with the account via GET /v1/packages

api
shipengine_get_v1_packages_by_package_idREAD

Get Custom Package Type by ID via GET /v1/packages/{package_id}

api
shipengine_get_v1_pickupsREAD

List all pickups that have been scheduled for this carrier via GET /v1/pickups

api
shipengine_get_v1_pickups_by_pickup_idREAD

Get Pickup By ID via GET /v1/pickups/{pickup_id}

api
shipengine_get_v1_rates_by_rate_idREAD

Retrieve a previously queried rate by its ID via GET /v1/rates/{rate_id}

api
shipengine_get_v1_service_points_by_carrier_code_by_country_code_by_service_point_idREAD

Returns a carrier service point by using the service_point_id via GET /v1/service_points/{carrier_code}/{country_code}/{service_point_id}

api
shipengine_get_v1_shipmentsREAD

Get list of Shipments via GET /v1/shipments

api
shipengine_get_v1_shipments_by_shipment_idREAD

Get an individual shipment based on its ID via GET /v1/shipments/{shipment_id}

api
shipengine_get_v1_shipments_by_shipment_id_ratesREAD

Get Rates for the shipment information associated with the shipment ID via GET /v1/shipments/{shipment_id}/rates

api
shipengine_get_v1_shipments_by_shipment_id_tagsREAD

Get Shipment tags based on its ID via GET /v1/shipments/{shipment_id}/tags

api
shipengine_get_v1_shipments_external_shipment_id_by_external_shipment_idREAD

Query Shipments created using your own custom ID convention using this endpint via GET /v1/shipments/external_shipment_id/{external_shipment_id}

api
shipengine_get_v1_tagsREAD

Get a list of all tags associated with an account. via GET /v1/tags

api
shipengine_get_v1_trackingREAD

Retrieve package tracking information via GET /v1/tracking

api
shipengine_get_v1_warehousesREAD

Retrieve a list of warehouses associated with this account. via GET /v1/warehouses

api
shipengine_get_v1_warehouses_by_warehouse_idREAD

Retrieve warehouse data based on the warehouse ID via GET /v1/warehouses/{warehouse_id}

api
shipengine_patch_v1_insurance_shipsurance_add_fundsWRITE

You may need to auto fund your account from time to time. For example, if you don't normally ship items over $100, and may want to add funds to insurance rather than keeping the account funded. via PATCH /v1/insurance/shipsurance/add_funds

api
shipengine_post_v1_account_settings_imagesWRITE

Create an Account Image via POST /v1/account/settings/images

api
shipengine_post_v1_addresses_validateWRITE

Address validation ensures accurate addresses and can lead to reduced shipping costs by preventing address correction surcharges. ShipEngine cross references multiple databases to validate addresses and identify potential deliverability issues. via POST /v1/addresses/validate

api
shipengine_post_v1_batchesWRITE

Create a Batch via POST /v1/batches

api
shipengine_post_v1_batches_by_batch_id_addWRITE

Add a Shipment or Rate to a Batch via POST /v1/batches/{batch_id}/add

api
shipengine_post_v1_batches_by_batch_id_process_labelsWRITE

Process Batch ID Labels via POST /v1/batches/{batch_id}/process/labels

api
shipengine_post_v1_batches_by_batch_id_removeWRITE

Remove a shipment or rate from a batch via POST /v1/batches/{batch_id}/remove

api
shipengine_post_v1_connections_carriers_by_carrier_nameWRITE

Connect a carrier account via POST /v1/connections/carriers/{carrier_name}

api
shipengine_post_v1_connections_insurance_shipsuranceWRITE

Connect a Shipsurance Account via POST /v1/connections/insurance/shipsurance

api
shipengine_post_v1_documents_combined_labelsWRITE

Download a combined label file via POST /v1/documents/combined_labels

api
shipengine_post_v1_environment_webhooksWRITE

Create a webhook for specific events in the environment. via POST /v1/environment/webhooks

api
shipengine_post_v1_labelsWRITE

Purchase and print a label for shipment via POST /v1/labels

api
shipengine_post_v1_labels_by_label_id_cancel_refundWRITE

Cancel a scheduled refund request for a label. Only labels with refund status "request_scheduled" can be excluded from an upcoming refund request. via POST /v1/labels/{label_id}/cancel_refund

api
shipengine_post_v1_labels_by_label_id_returnWRITE

Create a return label for an existing outbound label. You can optionally specify a custom RMA (Return Merchandise Authorization) number. If no RMA number is provided, the system will auto-generate one. via POST /v1/labels/{label_id}/return

api
shipengine_post_v1_labels_rate_shopper_id_by_rate_shopper_idWRITE

Purchase and print a shipping label using the Rate Shopper. The Rate Shopper automatically selects the optimal carrier and service from your wallet carriers based on your specified rate selection strategy (cheapest, fastest, or best_value). For more information about this in the [rates documentation](https://www.shipengine.com/docs/rates/#about-the-response). via POST /v1/labels/rate_shopper_id/{rate_shopper_id}

api
shipengine_post_v1_labels_rates_by_rate_idWRITE

When retrieving rates for shipments using the `/rates` endpoint, the returned information contains a `rate_id` property that can be used to generate a label without having to refill in the shipment information repeatedly. via POST /v1/labels/rates/{rate_id}

api
shipengine_post_v1_labels_shipment_by_shipment_idWRITE

Purchase a label using a shipment ID that has already been created with the desired address and package info. via POST /v1/labels/shipment/{shipment_id}

api
shipengine_post_v1_manifestsWRITE

Each ShipEngine manifest is created for a specific warehouse, so you'll need to provide the warehouse_id rather than the ship_from address. You can create a warehouse for each location that you want to create manifests for. via POST /v1/manifests

api
shipengine_post_v1_packagesWRITE

Create a custom package type to better assist in getting accurate rate estimates via POST /v1/packages

api
shipengine_post_v1_pickupsWRITE

Schedule a package pickup with a carrier via POST /v1/pickups

api
shipengine_post_v1_ratesWRITE

It's not uncommon that you want to give your customer the choice between whether they want to ship the fastest, cheapest, or the most trusted route. Most companies don't solely ship things using a single shipping option; so we provide functionality to show you all your options! via POST /v1/rates

api
shipengine_post_v1_rates_bulkWRITE

Get Bulk Shipment Rates via POST /v1/rates/bulk

api
shipengine_post_v1_rates_estimateWRITE

Get Rate Estimates via POST /v1/rates/estimate

api
shipengine_post_v1_service_points_listWRITE

List carrier service points by location via POST /v1/service_points/list

api
shipengine_post_v1_shipmentsWRITE

Create one or multiple shipments. via POST /v1/shipments

api
shipengine_post_v1_shipments_by_shipment_id_tags_by_tag_nameWRITE

Add a tag to the shipment object via POST /v1/shipments/{shipment_id}/tags/{tag_name}

api
shipengine_post_v1_tagsWRITE

Create a new tag for customizing how you track your shipments. via POST /v1/tags

api
shipengine_post_v1_tags_by_tag_nameWRITE

Create a new tag for customizing how you track your shipments (deprecated - use POST /v1/tags instead) via POST /v1/tags/{tag_name}

api
shipengine_post_v1_tokens_ephemeralWRITE

This endpoint returns a token that can be passed to an application for authorized access. The lifetime of this token is 10 seconds. via POST /v1/tokens/ephemeral

api
shipengine_post_v1_tracking_startWRITE

Allows you to subscribe to tracking updates for a package. You specify the carrier_code and tracking_number of the package, and receive notifications via webhooks whenever the shipping status changes. via POST /v1/tracking/start

api
shipengine_post_v1_tracking_stopWRITE

Unsubscribe from tracking updates for a package. via POST /v1/tracking/stop

api
shipengine_post_v1_warehousesWRITE

Create a warehouse location that you can use to create shipping items by simply passing in the generated warehouse id. If the return address is not supplied in the request body then it is assumed that the origin address is the return address as well via POST /v1/warehouses

api
shipengine_put_v1_account_settings_images_by_label_image_idWRITE

Update information for an account image. via PUT /v1/account/settings/images/{label_image_id}

api
shipengine_put_v1_addresses_recognizeWRITE

The address-recognition API makes it easy for you to extract address data from unstructured text, including the recipient name, line 1, line 2, city, postal code, and more. Data often enters your system as unstructured text (for example: emails, SMS messages, support tickets, or other documents). ShipEngine's address-recognition API helps you extract meaningful, structured data from this unstructured text. The parsed address data is returned in the same structure that's used for other ShipEngine APIs, such as address validation, rate quotes, and shipping labels. > **Note:** Address recognition is currently supported for the United States, Canada, Australia, New Zealand, the United Kingdom, and Ireland. via PUT /v1/addresses/recognize

api
shipengine_put_v1_batches_by_batch_idWRITE

Update Batch By Id via PUT /v1/batches/{batch_id}

api
shipengine_put_v1_carriers_by_carrier_id_add_fundsWRITE

Add Funds To A Carrier via PUT /v1/carriers/{carrier_id}/add_funds

api
shipengine_put_v1_connections_carriers_by_carrier_name_by_carrier_id_settingsWRITE

Update carrier settings via PUT /v1/connections/carriers/{carrier_name}/{carrier_id}/settings

api
shipengine_put_v1_environment_webhooks_by_webhook_idWRITE

Update the webhook url property via PUT /v1/environment/webhooks/{webhook_id}

api
shipengine_put_v1_labels_by_label_id_voidWRITE

Void a label by ID to get a refund. via PUT /v1/labels/{label_id}/void

api
shipengine_put_v1_packages_by_package_idWRITE

Update the custom package type object by ID via PUT /v1/packages/{package_id}

api
shipengine_put_v1_shipments_by_shipment_idWRITE

Update a shipment object based on its ID via PUT /v1/shipments/{shipment_id}

api
shipengine_put_v1_shipments_by_shipment_id_cancelWRITE

Mark a shipment cancelled, if it is no longer needed or being used by your organized. Any label associated with the shipment needs to be voided first An example use case would be if a batch label creation job is going to run at a set time and only queries `pending` shipments. Marking a shipment as cancelled would remove it from this process via PUT /v1/shipments/{shipment_id}/cancel

api
shipengine_put_v1_shipments_recognizeWRITE

The shipment-recognition API makes it easy for you to extract shipping data from unstructured text, including people's names, addresses, package weights and dimensions, insurance and delivery requirements, and more. Data often enters your system as unstructured text (for example: emails, SMS messages, support tickets, or other documents). ShipEngine's shipment-recognition API helps you extract meaningful, structured data from this unstructured text. The parsed shipment data is returned in the same structure that's used for other ShipEngine APIs, so you can easily use the parsed data to create a shipping label. > **Note:** Shipment recognition is currently supported for the United States, Canada, Australia, New Zealand, the United Kingdom, and Ireland. via PUT /v1/shipments/recognize

api
shipengine_put_v1_shipments_tagsWRITE

Update Shipments Tags via PUT /v1/shipments/tags

api
shipengine_put_v1_tags_by_tag_name_by_new_tag_nameWRITE

Change a tag name while still keeping the relevant shipments attached to it via PUT /v1/tags/{tag_name}/{new_tag_name}

api
shipengine_put_v1_warehouses_by_warehouse_idWRITE

Update Warehouse object information via PUT /v1/warehouses/{warehouse_id}

api
shipengine_put_v1_warehouses_by_warehouse_id_settingsWRITE

Update Warehouse settings object information via PUT /v1/warehouses/{warehouse_id}/settings

api

Put ShipEngine behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.