Flexport is a digital freight forwarding and supply chain platform giving businesses end-to-end visibility over global logistics. It connects shippers, carriers, customs brokers, and forwarders to manage ocean, air, and ground shipments, track cargo in real time, and handle customs clearance, invoicing, and documentation. Its Logistics API exposes order management, inbound/outbound shipments, product catalog, and returns.
Power end-to-end data operations for your Flexport API with Nexla. Our bi-directional Flexport connector is purpose-built for Flexport, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Flexport or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Flexport workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
To connect Nexla to Flexport, you need a Flexport account with API access and an API key. Flexport supports both a legacy API Key mechanism and a newer OAuth 2.0 credential approach. The Nexla connector uses API Key authentication, where the key is passed as a Bearer token in the Authorization request header.
Click on Your Business in the top navigation bar, then select Settings from the dropdown menu.
In the Settings panel, navigate to the API Keys tab.
Click the Create Key button to generate a new API key.
Copy and save the generated API key immediately. For security reasons, the full key value may not be shown again after you leave this screen.
Important
API keys provide access to your Flexport account data. Treat your API key as a password—do not share it publicly, commit it to source control, or expose it in client-side code. Revoke and regenerate the key immediately if it is ever compromised.
For enterprise or multi-user scenarios, Flexport also offers OAuth 2.0 credentials (Client ID and Client Secret) that generate short-lived Bearer tokens scoped to specific endpoints. The Nexla connector uses the API key method. For additional information about Flexport's authentication options, see the Flexport API Credentials tutorial.
Flexport provides separate API surfaces for different product areas:
Flexport API (freight forwarding, shipments, companies): base URL is https://api.flexport.com
Logistics API (fulfillment, orders, inbounds, parcels, products): base URL is https://logistics-api.flexport.com
When configuring your Nexla credential, enter the base URL that corresponds to the Flexport product area you intend to integrate with. For most logistics and fulfillment use cases, use https://logistics-api.flexport.com. For freight forwarding and shipment management use cases, use https://api.flexport.com.
To create a new Flexport credential, after selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter the Flexport API base URL in the Base URL field. This value defaults to https://api.flexport.com but can be updated to match the Flexport API surface you are connecting to:
Enter https://api.flexport.com to connect to the Flexport freight forwarding and shipment management API.
Enter https://logistics-api.flexport.com to connect to the Flexport Logistics API for fulfillment, orders, products, parcels, and inbound shipments.
Enter the Flexport API key you generated in the Flexport Platform (see Prerequisites) in the API Key field. Nexla will include this key as a Bearer token in the Authorization header of all API requests sent to Flexport on behalf of this credential.
The API key is transmitted securely and stored encrypted within Nexla. Nexla automatically prefixes the key with Bearer when constructing the Authorization header, so you only need to enter the raw key value here.
Click the Save button at the bottom of the overlay to save the configured credential. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Flexport connector tile, then select the credential that will be used to connect to the Flexport instance, and click Next; or, create a new Flexport credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Flexport endpoints. Each template is designed specifically for the corresponding Flexport API endpoint, making data source setup easy and efficient. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.
List Companies
Returns a paginated list of companies associated with your Flexport account. Use this endpoint to retrieve account-level company records, which can be useful for auditing your organization's Flexport network, cross-referencing company data with internal systems, or building reporting pipelines around partner and customer profiles.
No additional parameters are required for this endpoint. Once selected, Nexla will automatically paginate through all available company records using Flexport's page-based pagination.
This endpoint calls the Flexport API at https://api.flexport.com/companies and retrieves up to 100 records per page by default.
This endpoint uses the base URL configured in your Flexport credential. Ensure your credential's Base URL is set to https://api.flexport.com to access company records through the Flexport freight forwarding API.
List Shipments
Returns a paginated list of all shipments in your Flexport account. Use this endpoint to build pipelines that track the status and details of freight shipments, feed shipment data into analytics or reporting tools, or sync Flexport shipment records with other systems in your organization.
No additional parameters are required for this endpoint. Nexla automatically paginates through all available shipment records using Flexport's page-based pagination.
This endpoint calls the Flexport API at https://api.flexport.com/shipments and fetches up to 100 records per page.
This endpoint uses the base URL configured in your Flexport credential. Ensure your credential's Base URL is set to https://api.flexport.com to access shipment data through the freight forwarding API. For Logistics API inbound shipments, use the List Inbound Shipments or Get Inbound Shipment endpoints instead.
Get Bundle
Retrieves the details of a specific product bundle by its Flexport bundle ID. Bundles in Flexport's Logistics API represent sets of SKUs grouped together for sale or fulfillment as a unit. Use this endpoint when you need to retrieve structured data for a single bundle, such as its contents, SKU, title, and metadata.
Enter the unique identifier of the bundle you want to retrieve in the Bundle ID field. You can find bundle IDs in the Flexport Seller Portal or through the Flexport Logistics API.
This endpoint calls the Flexport Logistics API at https://logistics-api.flexport.com/logistics/api/2023-10/bundles/{bundle_id}.
To retrieve inventory information for a bundle rather than its definition, use the Get Bundle Inventory endpoint.
Get Bundle Inventory
Retrieves current inventory information for a specific product bundle. Use this endpoint to monitor on-hand and available inventory levels for bundled products in Flexport's fulfillment network. This is useful for inventory reconciliation, replenishment planning, or feeding bundle-level stock data into downstream analytics systems.
Enter the unique identifier of the bundle whose inventory you want to retrieve in the Bundle ID field.
This endpoint calls the Flexport Logistics API at https://logistics-api.flexport.com/logistics/api/2023-10/bundles/{bundle_id}/inventory.
Get Events
Retrieves a paginated list of logistics events from the Flexport Logistics API, with optional filtering by event type, order, shipment, or specific event IDs. Events represent key actions and status changes in the fulfillment lifecycle—such as order receipt, shipment updates, and delivery confirmations. Use this endpoint to build event-driven pipelines, track fulfillment activity, or audit logistics operations.
Enter the maximum number of events to return per page in the Limit field. The default value is 100, which is also the maximum supported by Flexport.
Optionally, enter one or more event IDs in the Event IDs field to filter results to those specific events.
Optionally, enter an event type in the Event Type field to filter events by type. Refer to the Flexport Logistics API documentation for a list of supported event types.
Optionally, enter an Order ID in the Order ID field to retrieve only events associated with a specific fulfillment order.
Optionally, enter a Shipment ID in the Shipment ID field to retrieve only events associated with a specific shipment.
Optionally, enter a pagination cursor token in the After field to resume fetching events from a specific position in the result set. Nexla manages cursor-based pagination automatically when pulling all available events.
This endpoint uses cursor-based (token) pagination. Nexla automatically handles pagination and will continue fetching pages until no more results are available.
List Inbound Shipments
Retrieves a paginated list of inbound inventory shipments from the Flexport Logistics API, with optional filtering by shipment IDs and statuses. Inbound shipments represent inventory being sent to Flexport's fulfillment centers. Use this endpoint to monitor inbound supply, reconcile inventory receipts, or feed inbound shipment data into warehouse management or ERP systems.
Optionally, enter one or more shipment IDs in the Shipment IDs field to filter results to specific inbound shipments.
Optionally, enter one or more shipment statuses in the Statuses field to filter results by status. For a list of supported statuses, refer to the Flexport Logistics API documentation.
Enter the maximum number of records to return per page in the Limit field. The default value is 100.
Enter the number of records to skip (offset) in the Offset field. The default value is 0. Nexla manages offset-based pagination automatically when pulling all available records.
This endpoint uses offset-based pagination. Nexla automatically increments the offset and continues fetching pages until no more results are returned.
Get Inbound Shipment
Retrieves detailed information for a single inbound shipment by its ID. Use this endpoint when you need complete detail about a specific inbound inventory shipment—such as origin address, item list, packaging details, prep instructions, and current status—for downstream processing, validation, or integration with a warehouse management system.
Enter the unique identifier of the inbound shipment in the Shipment ID field. Shipment IDs can be obtained from the Flexport Seller Portal or via the List Inbound Shipments endpoint.
Get Shipment Document
Retrieves a shipping document—such as a label or manifest—for a specific inbound shipment. Use this endpoint to programmatically access shipping labels and manifests generated by Flexport, enabling automated document retrieval workflows or integration with printing and labeling systems.
Enter the unique identifier of the shipment for which you want to retrieve a document in the Shipment ID field.
Enter the type of document to retrieve in the Document Option field (for example, label or manifest). Refer to the Flexport Logistics API documentation for a full list of supported document options.
Enter the desired file format for the document in the Document Format field (for example, PDF or PNG).
Get Shipment Quotes
Retrieves shipping quotes and available carrier rates for a specific inbound shipment. Use this endpoint to pull rate information programmatically—enabling cost analysis, carrier comparison, or automated quote selection workflows.
Enter the unique identifier of the inbound shipment for which you want to retrieve quotes in the Shipment ID field.
Shipping quotes are generated after an inbound shipment is created and submitted to Flexport. Ensure the shipment has been created and is in a state that supports quoting before using this endpoint. To purchase a selected quote, use the Purchase a selected shipping quote for an inbound shipment destination endpoint.
Get Order
Retrieves detailed information about a specific fulfillment order using its Flexport order ID. Use this endpoint to pull order-level data for downstream processing, such as syncing order status with an OMS, building fulfillment dashboards, or triggering business logic based on order state changes.
Enter the Flexport-assigned order ID in the Id field. This is the internal Flexport identifier for the fulfillment order, distinct from any seller-assigned external order ID.
To retrieve an order using a seller-assigned external ID instead of the Flexport internal ID, use the Retrieve an order by seller-assigned external ID endpoint.
Get Parcel by ID
Retrieves detailed information about a specific parcel using its Flexport parcel ID. Parcels represent individual packages in the Flexport Logistics API. Use this endpoint to track parcel-level details, such as tracking numbers, carrier assignments, status, and dimensions, for downstream reporting or integration with carrier tracking systems.
Enter the unique identifier of the parcel in the Id field. Parcel IDs are assigned by Flexport when a parcel shipping label is created.
Retrieves information about a specific return order using its Flexport return ID. Use this endpoint to programmatically access return order details for reconciliation, refund workflows, or integration with reverse logistics systems.
Enter the unique identifier of the return order in the Return ID field. This field is required. Return IDs can be found in the Flexport Seller Portal or via the Flexport Logistics API returns endpoints.
List and Filter Freight/Logistics Invoices
Retrieves a list of freight and logistics invoices from the Flexport Logistics API. Use this endpoint to pull invoice data for financial reconciliation, accounts payable workflows, or building cost analytics pipelines that track logistics spend over time.
No additional parameters are required for this endpoint. Once selected, Nexla will retrieve all available invoices from the Flexport Logistics API.
The response data is extracted from the invoices array in the API response.
Retrieve All Successfully Purchased Quotes for an Inbound Shipment
Retrieves all shipping quotes that have been successfully purchased for a specific inbound shipment. Use this endpoint to confirm which carrier and rate was selected for a shipment, audit shipping spend, or track purchased quotes for reconciliation against invoices.
Enter the unique identifier of the inbound shipment in the Shipment ID field. This field is required.
The response data is extracted from the quotes array in the API response.
Retrieve an Order by Seller-Assigned External ID
Retrieves a fulfillment order using the seller-assigned external ID—the ID from the seller's own order management system rather than Flexport's internal ID. Use this endpoint to look up order status and details using your own order reference numbers, making it easy to cross-reference Flexport fulfillment data with your internal systems.
Enter the seller-assigned external order ID in the External Order ID field. This field is required and must match the external ID assigned when the order was created in Flexport.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Flexport data sources can also be manually configured to ingest data from any valid Flexport API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
Flexport operates two primary API base URLs. Use https://api.flexport.com for freight forwarding, shipments, and company endpoints. Use https://logistics-api.flexport.com/logistics/api/2023-10 for fulfillment, orders, inbounds, parcels, products, and returns endpoints. Ensure the URL matches the base URL configured in your Flexport credential. Most Flexport list endpoints nest results in the response—common Path to Data values include $.data.data[*] (shipments), $.data[*] (events, inbound shipments), $.invoices[*] (invoices), and $ or $.data for single-resource endpoints (orders, bundles, parcels). Some endpoints also require a Flexport-Version request header (e.g. Flexport-Version:3); you do not need to include the Authorization header, as it is automatically applied by Nexla using the API key from your Flexport credential.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Flexport data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Flexport destination, and select the Send to Destination option from the menu. Select the Flexport connector from the list of available destination connectors, then select the credential that will be used to connect to the Flexport account, and click Next; or, create a new Flexport credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Flexport endpoints. Each template is designed specifically for the corresponding Flexport API operation, making destination setup easy and efficient. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create a Freight Booking (Ocean, Air, or Trucking)
Creates a new freight booking in Flexport for ocean, air, or trucking shipments. Use this destination endpoint when you want to automate the creation of freight bookings in Flexport by pushing booking request data from Nexla. This is useful for organizations that generate booking data in other systems and need to submit those bookings to Flexport programmatically.
No additional URL parameters are required for this endpoint. Nexla will send the booking details from the Nexset as a JSON request body to the Flexport bookings API at https://api.flexport.com/bookings.
Ensure the Nexset data is structured to match the fields expected by the Flexport bookings API. At a minimum, the request body should include freight mode, shipper, consignee, cargo details, and requested sailing dates. Refer to the Flexport booking tutorial for the required field structure.
Bookings created via this endpoint will appear in the Flexport Platform under your account's shipment management section. Ensure your Flexport credential has the appropriate permissions to create bookings before using this endpoint.
Update / Cancel a Fulfillment Order
Updates or cancels an existing fulfillment order in Flexport by its order ID. Use this destination when you need to modify order details—such as shipping address, requested delivery date, or order status—or to programmatically cancel orders. This is particularly useful for integrations that need to keep Flexport fulfillment orders in sync with an external OMS or ERP.
Enter the unique Flexport order ID of the fulfillment order to update or cancel in the Order ID field. This field is required.
The request body sent by Nexla should contain only the fields you want to update, formatted as JSON. To cancel an order, include the appropriate cancellation status field in the request body. Refer to the Flexport Logistics API documentation for supported update fields.
This endpoint uses the PATCH HTTP method, which means only the fields included in the request body will be updated. Fields not included in the payload will retain their current values in Flexport.
Update an Existing Product Record
Updates an existing product record in the Flexport product catalog by its product ID. Use this destination to keep your Flexport product catalog synchronized with external product information systems—such as a PIM, ERP, or e-commerce platform—by pushing product attribute updates programmatically.
Enter the unique Flexport product ID of the product record to update in the Product ID field. This field is required.
The request body sent by Nexla should contain the product fields to update, formatted as JSON. Updatable fields may include product name, description, dimensions, weight, and SKU attributes. Refer to the Flexport Products API tutorial for supported fields and formats.
This endpoint uses the PATCH HTTP method. Only the fields included in the request payload will be updated; all other product attributes will remain unchanged.
Purchase a Selected Shipping Quote for an Inbound Shipment
Purchases a specific shipping quote for an inbound shipment in Flexport. Use this destination endpoint to automate the carrier selection and quote purchase step in your inbound shipment workflow, enabling straight-through processing from quote retrieval to purchase confirmation.
Enter the unique identifier of the inbound shipment in the Shipment ID field. This field is required.
Enter the unique identifier of the shipping quote to purchase in the Quote ID field. This field is required. Quote IDs can be retrieved using the Get Shipment Quotes source endpoint.
Purchasing a quote commits to using the selected carrier and rate for the inbound shipment. Ensure the correct quote ID is provided before executing this action. For reference, see the Flexport Inbounds API documentation.
Asynchronously Request Shipping Quotes for an Inbound Shipment
Asynchronously requests shipping quotes for an inbound shipment in Flexport. This endpoint initiates the quoting process, and the resulting quotes can be retrieved using the Get Shipment Quotes source endpoint once they are ready. Use this endpoint to trigger the quoting process as part of an automated inbound shipment workflow.
Enter the unique identifier of the inbound shipment for which to request quotes in the Shipment ID field. This field is required.
Quote generation is asynchronous—after initiating the request with this endpoint, allow time for Flexport to process and generate the quotes before retrieving them. For reference, see the Flexport Inbounds API documentation.
Update an Existing Inbound Inventory Shipment
Updates an existing inbound inventory shipment in Flexport. Use this destination to modify shipment details—such as origin address, item quantities, packaging, or prep instructions—after the initial shipment has been created. This is useful for workflows that need to incorporate late-breaking changes from external systems before a shipment is finalized.
Enter the unique identifier of the inbound shipment to update in the Shipment ID field. This field is required.
The request body sent by Nexla should contain the shipment fields to update, formatted as JSON. Refer to the Flexport Inbounds API documentation for supported fields.
Cancel a Fulfillment Order
Cancels a fulfillment order in Flexport by its order ID. Use this destination to programmatically cancel orders that should not be fulfilled—for example, due to customer cancellation requests, fraud checks, or out-of-stock conditions detected in an upstream system.
Enter the unique Flexport order ID of the fulfillment order to cancel in the Order ID field. This field is required.
Cancelling an order may not be possible if the order has already progressed beyond a certain fulfillment state. For reference, see the Flexport Orders API documentation.
Retry Fulfillment of a Failed Order
Retries fulfillment of a previously failed order in Flexport. Use this destination endpoint to re-trigger fulfillment processing for orders that encountered errors—enabling automated recovery workflows that detect failed orders and resubmit them without manual intervention.
Enter the unique Flexport order ID of the failed order to retry in the Order ID field. This field is required.
Cancels a parcel shipping label that was previously created in Flexport. Use this destination endpoint when a package should not be shipped—for example, due to an order cancellation or a packing error—to void the label and prevent unintended shipments.
Enter the unique Flexport parcel ID of the label to cancel in the Parcel ID field. This field is required.
Label cancellation may be subject to time constraints depending on the carrier. For reference, see the Flexport Parcels API documentation.
Delete a Product from the Flexport Product Catalog
Deletes a product from the Flexport product catalog by its product ID. Use this destination to programmatically remove discontinued or erroneous product records from Flexport, keeping your catalog synchronized with an external product management system.
Enter the unique Flexport product ID of the product to delete in the Product ID field. This field is required.
Important
Product deletion is permanent. Ensure that the correct product ID is provided and that the product is no longer needed before executing this action. For reference, see the Flexport Products API documentation.
Exchange an Authorization Code for an OAuth Access Token
Exchanges an OAuth 2.0 authorization code for a Flexport access token. Use this destination endpoint when building OAuth flows that require programmatic token exchange—for example, in partner or multi-merchant integration scenarios where Flexport OAuth credentials are used instead of API keys.
Enter the authorization code received from the Flexport authorization server in the Authorization Code field. This field is required.
Enter the Client ID issued by Flexport for your OAuth application in the Client ID field. This field is required.
Enter the Client Secret issued by Flexport for your OAuth application in the Client Secret field. This field is required.
Once the selected endpoint template has been configured, click the Test button at the top of the Sample Payload panel to send a test payload to the Flexport API and verify that the destination is configured correctly.
Flexport destinations can also be manually configured to send data to any valid Flexport API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
Flexport operates two primary API base URLs. Use https://api.flexport.com for freight forwarding and booking endpoints. Use https://logistics-api.flexport.com/logistics/api/2023-10 for fulfillment, orders, inbounds, parcels, products, returns, and OAuth endpoints. Ensure the URL matches the Flexport API surface your credential is configured for. For update or cancel operations, include the ID of the object to be updated at the end of the URL. Flexport API endpoints typically expect JSON (application/json) for POST and PATCH requests. You do not need to include the Authorization header in Request Headers, as it is automatically applied by Nexla using the API key configured in your Flexport credential.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Flexport endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to the Flexport API until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.