# Linking ShipStation as a source - Docs

![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_9608fcca70)

![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_dark_a92b0e022d)

Let AI connect your sources for you

Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

`npx @posthog/wizard warehouse`

[Learn more](/wizard.md)

![PostHog Wizard hedgehog](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png)

**Alpha release**

The ShipStation source is currently in **alpha**. The core sync logic is stable, but the connector hasn't been battle-tested at scale yet. If you run into issues, please let us know.

The ShipStation connector syncs your order, shipment, fulfillment, product, customer, store, and warehouse data into PostHog.

## Adding a data source

1.  Go to the [sources tab](https://app.posthog.com/data-management/sources) of the data pipeline section in PostHog.

2.  Click **\+ New source** and then click **Link** next to ShipStation.

3.  You need an API key and API secret from ShipStation. In your ShipStation dashboard, go to **Settings** > **Account** > **API Settings** (or go directly to [API Settings](https://ship.shipstation.com/settings/api-settings)). Copy the **API Key** and **API Secret** values.

> **Note:** API access requires a ShipStation plan tier that includes it. If you don't see the API Settings page, your plan may not support API access.

4.  Back in PostHog, paste your **API key** and **API secret** into the corresponding fields and click **Next**.

5.  Set up the schemas you want to sync and choose the sync method and frequency for each. Click **Import** when done.

Once the syncs complete, you can query your ShipStation data in PostHog.

## Available tables

| Table | Description | Sync method |
| --- | --- | --- |
| orders | Order data | Incremental |
| shipments | Shipment data | Incremental |
| fulfillments | Fulfillment data | Incremental |
| products | Product catalog | Full refresh |
| customers | Customer data | Full refresh |
| stores | Store information | Full refresh |
| warehouses | Warehouse information | Full refresh |

**Incremental** tables sync only new or updated records on each run. **Full refresh** tables reload all data on each sync.

For incremental tables, you can choose which cursor field to use:

-   **orders** - `modifyDate` (recommended, captures updates) or `createDate`
-   **shipments** - `createDate`
-   **fulfillments** - `createDate`

## Configuration

| Option | Type | Required |
| --- | --- | --- |
| API key | password | Yes |
| API secret | password | Yes |

## Supported tables

| Table | Description | Sync method | Incremental field | Primary key |
| --- | --- | --- | --- | --- |
| orders | A customer order imported from a connected selling channel and managed in ShipStation. | Incremental, Full refresh | modifyDate, createDate | — |
| shipments | A shipment created in ShipStation for an order, including tracking and cost details. | Incremental, Full refresh | createDate | — |
| fulfillments | A fulfillment record for an order shipped outside ShipStation (e.g. by a third party). | Incremental, Full refresh | createDate | — |
| products | A product in the ShipStation catalog, used on order line items. | Full refresh | — | — |
| customers | A customer record aggregated from orders in ShipStation. | Full refresh | — | — |
| stores | A connected selling channel (store) that orders are imported from. | Full refresh | — | — |
| warehouses | A ship-from location (warehouse) configured in ShipStation. | Full refresh | — | — |

## Timestamps and timezone

ShipStation's v1 API returns all DateTime values in **US Pacific time**, not UTC. PostHog handles this conversion automatically during sync, but be aware of it when querying raw timestamp fields.

## Troubleshooting

### Authentication errors

If you see an "authentication failed" error, double-check your API key and API secret in [ShipStation API Settings](https://ship.shipstation.com/settings/api-settings). Regenerating the credentials and re-entering them in PostHog can resolve stale key issues.

### Access denied errors

A "denied access" error typically means your ShipStation plan doesn't include API access. Check your plan tier or contact ShipStation support.

### Rate limits

ShipStation enforces a rate limit of 40 requests per minute. PostHog automatically retries rate-limited requests with backoff, so syncs may slow down but should complete without intervention.

### Community questions

Ask a question

### Was this page useful?

HelpfulCould be better