Printago API
GET /v1/integrations

Get all integrations

List all integrations in your store

Requires: integration.view

Query Parameters

type optional
string
Filter on type. A bare value is an exact match (type=value); use type.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
externalId optional
string
External identifier for deduplication (e.g., shopId for Etsy)
publicData optional
string
Public metadata safe to expose to frontend
settings optional
string
User-configurable settings
id optional
string
Filter by record ID. A bare value is an exact match; use id.in=a,b,c for several (up to 100). See Querying Data.
storeId optional
string
Filter by store ID. Results are always limited to the store your API key belongs to, so this is rarely useful. See Querying Data.
createdAt optional
string
Filter by creation time. Pass an ISO 8601 timestamp with a comparison operator, e.g. createdAt.gte=2025-01-01T00:00:00Z. See Querying Data.
updatedAt optional
string
Filter by last-modified time. Pass an ISO 8601 timestamp with a comparison operator, e.g. updatedAt.gt=2025-01-01T00:00:00Z to fetch what changed since a checkpoint. See Querying Data.
sort optional
string
Comma-separated field:direction pairs, applied in order, e.g. createdAt:desc,name:asc. Direction is asc (the default) or desc. At most 5 clauses; JSON and array fields cannot be sorted on. See Querying Data.
limit optional
number
Maximum number of records to return, 1–1000. Defaults to 1000; larger values are capped at 1000. See Querying Data.
offset optional
number
Number of matching records to skip before returning results. Combine with limit to page through a list, and with meta=true to learn the total. See Querying Data.
fields optional
string
Comma-separated list of fields to return, e.g. id,name,updatedAt. Other fields are left out of each record. At most 50 fields. See Querying Data.
include optional
string
Comma-separated related records to embed in each result, e.g. linkedParts,linkedParts.part. At most 4 includes, each at most 2 levels deep; only the relations this endpoint supports are accepted, anything else is a 400. See Querying Data.
meta optional
boolean
Set to true to wrap the response as { data, meta }, where meta carries total, count, offset, limit, hasMore and executionTime. Without it the response is a bare array. See Querying Data.
hints optional
boolean
Set to true to add a hints array of suggested follow-up API calls to the response (aimed at AI agents). A list response is wrapped as { data, meta, hints }. See Querying Data.

Response Schema

Integration[] | SearchResponse
Variant 1Integration[]
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
Variant 2SearchResponseStandardized search response with data, metadata, and query information
datarequired
Record<string, any>[]
Array of matching entities
metarequired
object
Pagination and result metadata
countrequired
number
Number of records returned in this response
executionTimerequired
number
Query execution time in milliseconds
hasMorerequired
boolean
Whether there are more records available
limitrequired
number
Maximum number of records requested
offsetrequired
number
Number of records skipped
totalrequired
number
Total number of matching records (before pagination)

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"
  }
]