---
updatedAt: 2025-11-11T23:07:21.000Z
agentTools:
  projectIndex: https://developers.shipup.co/llms.txt
---

# Initialization

```javascript
ShipupETA.init(
  {
    publicApiKey,
    defaultDestinationAddress,
    carrierCodesCssSelectorsMapping,
    language,
    estimationMode
  }
)
```

### Options

* **`publicApiKey: string`**
  * **Required**
  * The public API key to use when consuming the Shipup API
  * Can be found in the [API & Webhooks section](https://app.shipup.co/settings/advanced/developer) of the Shipup App
* **`defaultOriginAddress: OriginAddress`**
  * the fallback origin address to use in calls to `fetchPredictions` without an origin address
* **`defaultDestinationAddress: Address`**
  * the fallback destination address to use in calls to `fetchPredictions` without a destination address
* **`carrierCodesCssSelectorsMapping: Object`**
  * an object with Shipup carrier codes for keys and CSS selectors for values ; those selectors will be used to identify which DOM nodes should be used when injecting the prediction of a given carrier
* **`language: 'en' | 'fr' | 'es'`**
  * the language to use to display the predictions, supported languages are 'en', 'es' and 'fr'
  * defaults to the browser language and falls back to English if that language is not supported
* **`estimationMode: 'early' | 'safe' | 'range'`**
  * sets which estimate to display when injecting prediction in DOM nodes
    * `early` displays the most optimistic estimation
    * `safe` adds an extra delay of one day to the optimistic estimation (before post-processing rules are applied)
    * `range` displays both the early and safe estimates as a date range, f.i. `12/02/2024 - 13/02/2024`
  * defaults to `early`

### Returns

* the module instance for chained calls