Skip to Content

Bridges

Manage bridge integrations that connect Orderly to external platforms. Each bridge is an instance of a bridge type configured with credentials and settings specific to your organization.

List Bridges

GET/api/bridges

List all configured bridges for the organization.

Requiredbridges:read

Returns a paginated list of bridges with their status, type, and last sync time.

Query Parameters

ParameterTypeDescription
pagenumberPage number (default: 1)
limitnumberItems per page (default: 20, max: 100)
categorystringFilter by category: ecommerce, shipping, marketplace, erp
statusstringFilter by status: active, inactive, error
curl -X GET "https://api.orderly.dev/api/bridges?category=ecommerce" \ -H "Authorization: Bearer ord_sk_..."

Response

{ "data": [ { "id": "uuid", "name": "My Shopify Store", "bridge_type_id": "uuid", "bridge_type": { "name": "Shopify", "category": "ecommerce" }, "status": "active", "last_sync_at": "2026-01-15T10:00:00Z", "created_at": "2026-01-01T00:00:00Z" } ], "pagination": { "page": 1, "limit": 20, "total": 3, "totalPages": 1, "hasMore": false } }

Get Bridge

GET/api/bridges/:id

Retrieve a single bridge by ID.

Requiredbridges:read

Returns the full bridge configuration including type details, status, sync history, and settings. Credential values are redacted.

curl -X GET "https://api.orderly.dev/api/bridges/550e8400-e29b-41d4-a716-446655440000" \ -H "Authorization: Bearer ord_sk_..."

Create Bridge

POST/api/bridges

Create and configure a new bridge integration.

Requiredbridges:write

Creates a new bridge from a bridge type. The config object must include all required fields defined by the bridge type’s manifest.

Request Body

FieldTypeRequiredDescription
namestringYesDisplay name for this bridge
bridge_type_idstringYesThe bridge type to instantiate
configobjectYesCredentials and settings per the bridge type’s config fields
curl -X POST "https://api.orderly.dev/api/bridges" \ -H "Authorization: Bearer ord_sk_..." \ -H "Content-Type: application/json" \ -d '{ "name": "Production Shopify", "bridge_type_id": "660e8400-e29b-41d4-a716-446655440000", "config": { "shop_domain": "my-store.myshopify.com", "api_key": "shpat_..." } }'

Update Bridge

PATCH/api/bridges/:id

Update bridge name, config, or status.

Requiredbridges:write

Updates a bridge’s configuration. You can change the name, update credentials, or toggle the bridge active/inactive.

Request Body

FieldTypeDescription
namestringNew display name
configobjectUpdated configuration values
statusstringSet to active or inactive
curl -X PATCH "https://api.orderly.dev/api/bridges/550e8400-e29b-41d4-a716-446655440000" \ -H "Authorization: Bearer ord_sk_..." \ -H "Content-Type: application/json" \ -d '{"name": "Staging Shopify", "status": "inactive"}'

Delete Bridge

DELETE/api/bridges/:id

Delete a bridge and remove its configuration.

Requiredbridges:write

Permanently deletes a bridge. This does not delete orders or shipments that were previously synced through this bridge.

curl -X DELETE "https://api.orderly.dev/api/bridges/550e8400-e29b-41d4-a716-446655440000" \ -H "Authorization: Bearer ord_sk_..."

Trigger Sync

POST/api/bridges/:id/sync

Manually trigger a sync for a bridge.

Requiredbridges:write

Queues a sync job for the bridge. The sync runs asynchronously via QStash. Returns the job ID for tracking.

curl -X POST "https://api.orderly.dev/api/bridges/550e8400-e29b-41d4-a716-446655440000/sync" \ -H "Authorization: Bearer ord_sk_..."

Response

{ "data": { "job_id": "uuid", "status": "queued", "bridge_id": "uuid" } }

Validate Config

POST/api/bridges/:id/validate

Validate a bridge's configuration by testing the connection.

Requiredbridges:read

Tests the bridge configuration by attempting to connect to the external platform. Returns whether the connection was successful and any errors.

curl -X POST "https://api.orderly.dev/api/bridges/550e8400-e29b-41d4-a716-446655440000/validate" \ -H "Authorization: Bearer ord_sk_..."

Response

{ "data": { "valid": true, "message": "Connection successful" } }