Printago API
GET /v1/integrations/{id}

Get a specific integration by ID

Requires: integration.view

Path Parameters

id required
string
- Integration identifier

Response Schema

Integration
createdAtrequired
string
format: date-time
externalIdoptionalnullable
string
External identifier for deduplication (e.g., shopId for Etsy)
idrequired
string
pattern: ^[a-z0-9]{24}$
publicDataoptionalnullable
object
Public metadata safe to expose to frontend
Variant 1EtsyPublicDataPublic data for Etsy integrations (safe to expose to frontend)
lastSyncedAtoptional
number
shopIdrequired
string
shopNamerequired
string
shopUrloptional
string
Variant 2ShopifyPublicDataPublic data for Shopify integrations (safe to expose to frontend)
lastSyncedAtoptional
number
shopDomainrequired
string
shopNamerequired
string
Variant 3BambuLabPublicDataPublic data for BambuLab integrations (safe to expose to frontend)
usernameoptional
string
Variant 4CloudStoragePublicDataPublic data for cloud-storage integrations (safe to expose to frontend).
authErroroptionalnullable
string
Set when a token refresh fails because the grant was revoked. The stored tokens are dead once this is set; the UI prompts a reconnect. Cleared on a successful reconnect.
displayNamerequired
string
emailrequired
string
lastSyncedAtoptional
number
lastSyncErroroptionalnullable
string
lastSyncResultoptional
object
createdrequired
number
deletedrequired
number
errorsrequired
number
updatedrequired
number
lastSyncStartedAtoptional
number
syncStatusoptional
"idle" | "syncing"
Coarse run state used as the concurrency claim for background syncs.
idlesyncing
Variant 5EbayPublicDataPublic data for eBay integrations (safe to expose to frontend)
lastSyncedAtoptional
number
marketplaceIdrequired
string
eBay marketplace ID (e.g., EBAY_US, EBAY_UK, EBAY_DE, EBAY_AU)
sellerIdrequired
string
usernamerequired
string
Variant 6TikTokShopPublicDataPublic data for TikTok Shop integrations (safe to expose to frontend)
disconnectedAtoptional
number
Set when TikTok notifies us (SELLER_DEAUTHORIZATION webhook) that the seller revoked our app's access. The stored tokens are dead once this is set, so syncs stop and the UI prompts a reconnect. Cleared when the seller re-authorizes through OAuth.
disconnectReasonoptional
"seller_deauthorized"
Why the integration was auto-disconnected (only `seller_deauthorized` today).
lastSyncedAtoptional
number
regionrequired
string
TikTok Shop region (e.g., US, UK, ID)
shopIdrequired
string
shopNamerequired
string
Variant 7WooCommercePublicDataPublic data for WooCommerce integrations (safe to expose to frontend)
lastSyncedAtoptional
number
lastWebhookAtoptional
number
When the last signed webhook delivery arrived. Webhook delivery on WordPress hosts is WP-cron driven and unreliable, so the UI surfaces this next to the polling interval.
storeNamerequired
string
The WordPress site title, for display.
storeUrlrequired
string
Normalized store URL (origin + path, no trailing slash).
syncWatermarkoptional
number
Watermark (epoch millis) for the incremental order sync: the start time of the last successful sync, minus overlap. Orders modified after this are re-fetched and reconciled on the next run.
webhookSetupErroroptionalnullable
string
Set when webhook registration failed at connect time; polling still runs.
Variant 8ShipStationPublicDataPublic data for ShipStation integrations (safe to expose to frontend)
accountNamerequired
string
ShipStation has no account id on the v1 API; the first store's account name identifies it.
authErroroptionalnullable
string
Set when ShipStation rejects the stored credentials. Syncs stop until the seller reconnects; cleared on a successful reconnect.
lastSyncedAtoptional
number
ordersSyncedThroughoptional
string
Watermark: the ShipStation `modifyDate` (ISO, account-local) the last sync read through. The next sync resumes from here rather than re-walking the seller's whole order history, which a 40 req/min key cannot afford.
storesrequired
object[]
Discovered stores, refreshed on every sync so the picker can show new ones.
activerequired
boolean
ShipStation's own active flag; inactive stores stop producing orders.
marketplaceNamerequired
string
The underlying channel, e.g. "Walmart", "Shopify", "Manual Orders".
storeIdrequired
number
storeNamerequired
string
Variant 9WixPublicDataPublic data for Wix integrations (safe to expose to frontend)
authErroroptionalnullable
string
Set when Wix refuses to mint a token for the instance (the app was removed from the site). Syncs stop until reconnect; cleared on reconnect.
disconnectedAtoptional
number
Set when the App Instance Removed webhook arrived. Cleared on reconnect.
disconnectReasonoptional
"app_removed"
Why the integration was flagged disconnected (only `app_removed` today).
instanceIdrequired
string
lastSyncedAtoptional
number
lastWebhookAtoptional
number
When the last verified webhook delivery arrived.
ordersSyncedThroughoptional
string
Watermark: the Wix `updatedDate` (ISO-8601 UTC) the last sync read through. The next sync resumes from here minus a small overlap.
paymentCurrencyoptional
string
The site's currency at connect time; order mapping falls back to it.
siteIdrequired
string
siteNamerequired
string
siteUrloptionalnullable
string
Only set once the site is published.
settingsoptionalnullable
object
User-configurable settings
Variant 1EtsySettingsSettings for Etsy integrations
autoCloseOrdersoptional
"shipped" | "delivered" | "never"
shippeddeliverednever
autoPrintoptional
boolean
ignoredVariantNamesoptional
string[]
Variant option names to exclude from SKU matching (e.g., ["Size"])
Variant 2ShopifySettingsSettings for Shopify integrations
autoCloseOrdersoptional
"partial" | "never" | "fulfilled"
When to automatically close orders in Printago based on Shopify status. - 'fulfilled': Close when Shopify order is fully fulfilled (shipped) - 'partial': Close when any items are fulfilled - 'never': Never auto-close based on fulfillment
partialneverfulfilled
autoPrintoptional
boolean
ignoredVariantNamesoptional
string[]
Variant option names to exclude from SKU matching (e.g., ["Size"])
propertyWhitelistoptional
string[]
Property names to import as SKU options (e.g., ["Logo", "Back Color"])
tagWhenPrintedoptional
string
Tag to add to orders when fully printed (empty string disables)
writeProgressTagsoptional
boolean
Keep Shopify order tags in sync with Printago print job progress (e.g. "2/5 printed").
Variant 3EbaySettingsSettings for eBay integrations
autoCloseOrdersoptional
"shipped" | "never"
When to close the Printago order. Only 'shipped' and 'never' exist here, unlike Etsy: eBay's Fulfillment API reports an order as FULFILLED once tracking is uploaded but never tells us it was delivered, so a 'delivered' option could only ever have behaved as 'shipped' or never fired at all.
shippednever
autoPrintoptional
boolean
Variant 4TikTokShopSettingsSettings for TikTok Shop integrations
autoCloseOrdersoptional
"shipped" | "delivered" | "never"
shippeddeliverednever
autoPrintoptional
boolean
Variant 5WooCommerceSettingsSettings for WooCommerce integrations
autoCloseOrdersoptional
"never" | "completed"
WooCommerce has no shipped/delivered distinction; 'completed' is the seller's own "fulfilled" signal, so it is the only close trigger.
nevercompleted
autoPrintoptional
boolean
ignoredVariantNamesoptional
string[]
Variant option names to exclude from SKU matching (e.g., ["Size"])
Variant 6ShipStationSettingsSettings for ShipStation integrations
autoCloseOrdersoptional
"shipped" | "never"
Defaults to 'shipped' here, unlike Shopify and eBay: ShipStation is where the seller actually ships, so SHIP_NOTIFY is a first-hand signal rather than a marketplace's echo of one.
shippednever
autoPrintoptional
boolean
excludedStoreIdsoptional
number[]
ShipStation store ids NOT to import from. An exclusion list rather than an allowlist so a store the seller adds in ShipStation later imports without them having to come back here — the seller already knows what they connected, and turning one off is the rarer action.
showMarketplaceoptional
boolean
Show the underlying marketplace alongside the source, so an order reads "ShipStation - Walmart" rather than just "ShipStation".
Variant 7WixSettingsSettings for Wix integrations
autoCloseOrdersoptional
"never" | "fulfilled"
Defaults to 'fulfilled': Wix is where the seller marks the order shipped, so the fulfillment is a first-hand signal (the ShipStation stance).
neverfulfilled
autoPrintoptional
boolean
ignoredVariantNamesoptional
string[]
Variant option names to exclude from SKU matching (e.g., ["Size"])
importMarketplaceOrdersoptional
boolean
Orders synced into Wix from marketplaces (eBay, Etsy, Amazon, ...) import by default; a seller who also connects those channels directly can turn them off here to avoid duplicates.
importUnpaidOrdersoptional
boolean
An APPROVED order on an offline payment method is still NOT_PAID. Importing it would print on credit, so unpaid orders wait by default.
Variant 8CloudStorageSettingsSettings for cloud-storage integrations (Google Drive, OneDrive).
autoSyncoptional
boolean
Re-enqueue the next sync (~60 min) when a background sync completes.
keepPartsOnRemoteDeleteoptional
boolean
Whether to keep Printago parts when their source file is removed remotely. Defaults to true: deleting parts is a destructive side effect, opt-in only.
syncFileTypesoptional
string[]
File extensions to import (defaults to all supported).
watchedFolderIdoptionalnullable
string
The remote folder ID to watch.
watchedFolderNameoptionalnullable
string
The remote folder name/path (for display).
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
typerequired
enum
bambulabetsyshopifyebaytiktok-shopwoocommerceshipstationwixgoogle-driveonedrive
updatedAtrequired
string
format: date-time

Example Response

200 OK — application/json
{
  "type": "bambulab",
  "externalId": "string",
  "publicData": {
    "shopId": "string",
    "shopName": "string",
    "shopUrl": "string",
    "lastSyncedAt": 1
  },
  "settings": {
    "autoPrint": true,
    "autoCloseOrders": "shipped",
    "ignoredVariantNames": [
      "string"
    ]
  },
  "id": "string",
  "storeId": "string",
  "createdAt": "2025-01-15T12:00:00.000Z",
  "updatedAt": "2025-01-15T12:00:00.000Z"
}