Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Shippo

Scalekit connector
Open markdown

The Shippo connector lets your AI agent act in each user's Shippo account. Each user connects their own Shippo API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 63 tools.

Tools
63
What they doRead · write · destructive
37 · 23 · 337 read23 write3 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Shippo connection

    In AgentKit > Connections, create a Shippo connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'shippo'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Shippo:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'shippo_list_address_book_entries',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Shippo credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • shippo_create_estimatesEstimate delivery dates for a parcel between two ZIP codes without buying a label.Read-only

    Create Delivery Estimates

    Estimate delivery dates for a parcel between two ZIP codes without buying a label. Returns the estimate with object_id, confidence_level, messages and a predictions array of delivery date predictions. Use to preview transit times before shipping. Reading only; nothing is created or purchased.

    Inputs

    destinationobjectrequired
    Destination as an object with a zip code, for example {"zip":"10001"}.
    originobjectrequired
    Origin as an object with a zip code, for example {"zip":"94117"}.
    parcelobjectrequired
    Parcel as an object with numeric length, width, height, distance_unit, weight and mass_unit.
    planned_ship_datestringrequired
    Date you plan to hand the parcel to the carrier, in YYYY-MM-DD format.
    confidence_levelstring
    How conservative the delivery date should be: TYPICAL, DEFAULT or HIGH. Allowed values: TYPICAL, DEFAULT, HIGH.one of TYPICALDEFAULTHIGH
    latest_delivery_datestring
    Optional latest acceptable delivery date; only service levels that can meet it are returned.
    servicelevel_tokensarray
    Optional list of service level tokens to restrict the estimate to.
  • shippo_create_live_ratesGet checkout shipping rates for a cart, using your configured service groups, without creating a shipment.Read-only

    Create Live Rates

    Get checkout shipping rates for a cart, using your configured service groups, without creating a shipment. Returns count and results, each a rate option with title, amount, currency, estimated_days and amount_local. Use at checkout to show shipping options. Reading only; nothing is purchased. Use shippo_create_shipment to rate a real shipment.

    Inputs

    address_tostringrequired
    Recipient address as an address object, or the object_id of an existing address.
    line_itemsarrayrequired
    Cart items as a list. Each has title, quantity, total_price, currency, weight and weight_unit (and optionally sku).
    address_fromstring
    Sender address as an address object or object_id. Defaults to your default sender address.
    parcelstring
    Object ID of a user parcel template, or a parcel object, used for the whole cart. Optional when line items carry weights.
  • shippo_get_addressRetrieve one address object by its object ID.Read-only

    Get Address

    Retrieve one address object by its object ID. Returns the address fields, is_complete flag and validation_results if the address was validated. Use when you have an address object_id. Use shippo_list_addresses to find ids.

    Inputs

    address_idstringrequired
    Object ID of the address to retrieve, as returned by shippo_create_address or shippo_list_addresses.
  • shippo_get_address_book_entryRetrieve one address book entry by its object ID.Read-only

    Get Address Book Entry

    Retrieve one address book entry by its object ID. Returns the stored address fields. Use when you have the entry id. Use shippo_list_address_book_entries to search.

    Inputs

    address_idstringrequired
    Object ID of the address book entry.
  • shippo_get_batchRetrieve a batch and a page of its batch shipments.Read-only

    Get Batch

    Retrieve a batch and a page of its batch shipments. Returns the batch status (VALIDATING, VALID, INVALID, PURCHASING, PURCHASED), counts and batch_shipments with their own statuses. Use to poll validation or purchase progress.

    Inputs

    batch_idstringrequired
    Object ID of the batch.
    pageinteger
    Page number to return, starting at 1.
    resultsinteger
    Number of results per page (maximum 100).default 5
  • shippo_get_carrier_accountRetrieve one carrier account by its object ID.Read-only

    Get Carrier Account

    Retrieve one carrier account by its object ID. Returns carrier, account_id, active, test and the account parameters. Use when you have a carrier account object_id.

    Inputs

    carrier_account_idstringrequired
    Object ID of the carrier account.
  • shippo_get_carrier_parcel_templateRetrieve one carrier preset parcel template by its token.Read-only

    Get Carrier Parcel Template

    Retrieve one carrier preset parcel template by its token. Returns carrier, name, dimensions, units and the service levels it applies to. Use when you know the template token.

    Inputs

    carrier_parcel_template_tokenstringrequired
    Template token such as USPS_FlatRateEnvelope.
  • shippo_get_customs_declarationRetrieve one customs declaration by its object ID.Read-only

    Get Customs Declaration

    Retrieve one customs declaration by its object ID. Returns the declaration with contents_type, items, certify_signer and object_state. Use to verify a declaration before attaching it to a shipment.

    Inputs

    customs_declaration_idstringrequired
    Object ID of the customs declaration.
    pageinteger
    Page number to return, starting at 1.