Integrations API
The Integrations page in the dashboard shows a status on every card (WhatsApp, Delivyr, the ad platforms, the stores, the warehouses and the analytics tools). This endpoint returns that same status, so a script or a monitoring job can check that a workspace is still connected without opening the dashboard.
Connecting and disconnecting stay in the dashboard. This API is read-only.
All endpoints on this page are relative to the base URL: https://api-eu1.joryio.com/api - see API Overview.
Authentication
Use an API key as a bearer token (or a dashboard session). The key needs the integrations:read permission. A key belongs to one workspace, and the answer is about that workspace.
Authorization: Bearer jry_live_xxxxxxxxxxxxxxxxxxxx
Get the status of every integration
GET /integrations-hub/status
No parameters. The response lists every integration on the Integrations page, in the page's order:
{
"integrations": [
{ "id": "whatsapp", "status": "connected", "connected": true },
{ "id": "delivyr", "status": "not_connected", "connected": false, "count": 0 },
{ "id": "meta_ads", "status": "error", "connected": true, "count": 2 },
{ "id": "shopify", "status": "connected", "connected": true, "count": 1 },
{ "id": "snowflake", "status": "connected", "connected": true, "count": 1 },
{ "id": "segment", "status": "coming_soon", "connected": false }
]
}
| Field | Type | Meaning |
|---|---|---|
id | string | The integration: whatsapp, delivyr, meta_ads, google_ads, tiktok_ads, linkedin_ads, criteo_ads, shopify, woocommerce, magento, prestashop, snowflake, bigquery, s3, redshift, amplitude, mixpanel, segment. New integrations are added over time - ignore an id you do not know. |
status | string | What the card shows - see Status values. |
connected | boolean | true when at least one connection behind the integration is live. A store whose last sync failed is still connected (status is error, connected is true). |
count | number | How many connected accounts, data streams or stores are behind the integration. Not present for WhatsApp or for an integration that is not available yet. |
Status values
status | Meaning |
|---|---|
connected | Connected and working. |
not_connected | Nothing is connected yet. |
action_needed | WhatsApp only: an account was added and is waiting for approval. |
error | Connected, but something needs attention: an ad platform account reports an error, or a store's last sync failed. Open the integration in the dashboard to see what failed. |
coming_soon | The integration is not available yet. |
When an integration has more than one part (for example Snowflake: importing data and streaming events), an error in any part wins, then connected, then action_needed.
What counts as connected
- WhatsApp: an active WhatsApp Business account of the workspace or of the whole organization, or an active WhatsApp provider set up by Joryio.
- Stores (Shopify, WooCommerce, Magento, PrestaShop): a store connection that has not been disconnected.
- Delivyr: a Delivyr account connected to the workspace.
- Ad platforms and warehouse imports: a connected account. Each account counts once.
- Data streams (S3, BigQuery, Snowflake, Redshift, Amplitude, Mixpanel): a data stream to that destination.
These are the same rules Joryio uses everywhere it reports connected channels and stores.
The response never contains credentials, account names, phone numbers, sender addresses or error messages - only a status, a yes or no and a count per integration.
Errors
| Status | When |
|---|---|
401 | The API key is missing or not valid. |
403 | The key does not have integrations:read. |
400 | A dashboard session with no workspace selected. |
429 | Too many requests - see Rate Limiting. |
Example
curl https://api-eu1.joryio.com/api/integrations-hub/status \
-H "Authorization: Bearer jry_live_xxxxxxxxxxxxxxxxxxxx"