Fluid Commerce APIs (1.0)

The Fluid Commerce APIs provides a comprehensive set of APIs designed to integrate Fluid's powerful services into your applications seamlessly. This bundle offers robust functionality for enhancing messaging solutions, streamlining data management, and improving customer interactions. With detailed documentation, secure authentication, and flexible integration options, the Fluid Public API Bundle is engineered to help you leverage our services efficiently and effectively, unlocking new potentials and achieving greater connectivity within your systems.

Download OpenAPI description
Overview
E-mail support@fluid.app
License MIT
Languages
Servers
Mock server
https://fluid-commerce.redocly.app/_mock/docs/apis/swagger/
Production server with company subdomain
https://{company}.fluid.app/
Local development server
http://fluid.lvh.me:{port}/

Admins

Operations

Agreements

Operations

ApplePay

Operations

Application Theme Templates

Operations

Application Themes

Operations

ApplicationThemeTemplates

Operations

Authentication

Operations

Callback Definitions

Operations

Callback Registrations

Operations

Callback Schemas

Operations

Carts

Operations

Categories

Operations

Collections

Operations

Companies

Operations

Company Admins

Operations

Company Custom Catch Ups

Operations

Company Discounts

Operations

Company Mobile Widgets

Operations

Company Pages

Operations

Pages

Operations

Company Popups

Operations

Company Settings - Checkout

Operations

Company Settings - Countries

Operations

Company Settings - Languages

Operations

Company Settings - Social Media

Operations

Company Settings - Warehouses

Operations

Company Webhook Events

Operations

Contacts

Operations

Currencies

Operations

Customer Orders

Operations

CustomerNotes

Operations

Customers

Operations

DAM Query

Operations

Dam

Operations

Default Libraries

Operations

DefaultMySites

Operations

Devices

Operations

List all expo devices (Root Admin Only)

Request

Get all expo devices across all companies. This endpoint is restricted to root administrators only.

Query
pageinteger

Page number for pagination (default: 1)

per_pageinteger

Number of items per page (default: 20, max: 100)

user_idinteger

Filter devices by user ID

device_typestring

Filter devices by type (ios, android, etc.)

active_onlyboolean

Only return devices that have been refreshed recently

sorted_bystring

Sort order. Options: created_at_asc, created_at_desc, refreshed_at_asc, refreshed_at_desc (default: created_at_desc)

search_querystring

Search across device_uid, token, and bundle_id fields

curl -i -X GET \
  'https://fluid-commerce.redocly.app/_mock/docs/apis/swagger/api/devices?active_only=true&device_type=string&page=0&per_page=0&search_query=string&sorted_by=string&user_id=0' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Devices retrieved successfully

Bodyapplication/json
devicesArray of objectsrequired
devices[].​idintegerrequired

Unique identifier for the device

Example: 1
devices[].​user_idintegerrequired

ID of the user who owns this device

Example: 123
devices[].​device_typestring or null

Type of device (ios, android, etc.)

Example: "ios"
devices[].​tokenstring or null

Device push token

Example: "ExponentPushToken[abc123]"
devices[].​device_uidstring or null

Unique device identifier

Example: "device-uid-123"
devices[].​project_idstring or null

Project ID for the device

Example: "project-123"
devices[].​bundle_idstring or null

Bundle identifier

Example: "com.example.app"
devices[].​refreshed_atstring or null(date-time)

Last time device was refreshed

Example: "2025-01-28T12:00:00Z"
devices[].​created_atstring(date-time)required

When device was created

Example: "2025-01-28T12:00:00Z"
devices[].​updated_atstring(date-time)required

When device was last updated

Example: "2025-01-28T12:00:00Z"
devices[].​userobject

Full user object with all fields

metaobjectrequired
meta.​request_idstring
Example: "123e4567-e89b-12d3-a456-426614174000"
meta.​timestampstring(date-time)
Example: "2025-01-28T12:00:00Z"
meta.​paginationobject
Response
application/json
{ "devices": [ {} ], "meta": { "request_id": "123e4567-e89b-12d3-a456-426614174000", "timestamp": "2025-01-28T12:00:00Z", "pagination": {} } }

Delete device by push token

Request

Delete a device by push token. Available to all authenticated users. Users can only delete their own devices, except root admins who can delete any device.

Query
push_tokenstringrequired

Push token of the device to delete

curl -i -X DELETE \
  'https://fluid-commerce.redocly.app/_mock/docs/apis/swagger/api/devices?push_token=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Device deleted successfully

Bodyapplication/json
messagestringrequired
Example: "Device deleted successfully"
deleted_countintegerrequired

Number of devices deleted

Example: 1
metaobjectrequired
meta.​request_idstring
Example: "123e4567-e89b-12d3-a456-426614174000"
meta.​timestampstring(date-time)
Example: "2025-01-28T12:00:00Z"
Response
application/json
{ "message": "Device deleted successfully", "deleted_count": 1, "meta": { "request_id": "123e4567-e89b-12d3-a456-426614174000", "timestamp": "2025-01-28T12:00:00Z" } }

Create or refresh a device

Request

Create a new device or refresh an existing one if the push token already exists for the current user. Available to all authenticated users. Users can only manage their own devices.

Bodyapplication/json
push_tokenstringrequired

Device push token (required)

Example: "ExponentPushToken[abc123]"
device_typestring

Type of device (ios, android, etc.)

Example: "ios"
device_uidstring

Unique device identifier

Example: "device-uid-123"
project_idstring

Project ID for the device

Example: "project-123"
bundle_idstring

Bundle identifier

Example: "com.example.app"
curl -i -X POST \
  https://fluid-commerce.redocly.app/_mock/docs/apis/swagger/api/devices/create_or_refresh \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "push_token": "ExponentPushToken[abc123]",
    "device_type": "ios",
    "device_uid": "device-uid-123",
    "project_id": "project-123",
    "bundle_id": "com.example.app"
  }'

Responses

Device refreshed successfully

Bodyapplication/json
deviceobjectrequired
device.​idintegerrequired

Unique identifier for the device

Example: 1
device.​user_idintegerrequired

ID of the user who owns this device

Example: 123
device.​device_typestring or null

Type of device (ios, android, etc.)

Example: "ios"
device.​tokenstring or null

Device push token

Example: "ExponentPushToken[abc123]"
device.​device_uidstring or null

Unique device identifier

Example: "device-uid-123"
device.​project_idstring or null

Project ID for the device

Example: "project-123"
device.​bundle_idstring or null

Bundle identifier

Example: "com.example.app"
device.​refreshed_atstring or null(date-time)

Last time device was refreshed

Example: "2025-01-28T12:00:00Z"
device.​created_atstring(date-time)required

When device was created

Example: "2025-01-28T12:00:00Z"
device.​updated_atstring(date-time)required

When device was last updated

Example: "2025-01-28T12:00:00Z"
device.​userobject

Full user object with all fields

metaobjectrequired
meta.​request_idstring
Example: "123e4567-e89b-12d3-a456-426614174000"
meta.​timestampstring(date-time)
Example: "2025-01-28T12:00:00Z"
Response
application/json
{ "device": { "id": 1, "user_id": 123, "device_type": "ios", "token": "ExponentPushToken[abc123]", "device_uid": "device-uid-123", "project_id": "project-123", "bundle_id": "com.example.app", "refreshed_at": "2025-01-28T12:00:00Z", "created_at": "2025-01-28T12:00:00Z", "updated_at": "2025-01-28T12:00:00Z", "user": {} }, "meta": { "request_id": "123e4567-e89b-12d3-a456-426614174000", "timestamp": "2025-01-28T12:00:00Z" } }

Get a specific expo device (Root Admin Only)

Request

Get details of a specific expo device by ID. This endpoint is restricted to root administrators only.

Path
idintegerrequired

Device ID

curl -i -X GET \
  'https://fluid-commerce.redocly.app/_mock/docs/apis/swagger/api/devices/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Device retrieved successfully

Bodyapplication/json
deviceobjectrequired
device.​idintegerrequired

Unique identifier for the device

Example: 1
device.​user_idintegerrequired

ID of the user who owns this device

Example: 123
device.​device_typestring or null

Type of device (ios, android, etc.)

Example: "ios"
device.​tokenstring or null

Device push token

Example: "ExponentPushToken[abc123]"
device.​device_uidstring or null

Unique device identifier

Example: "device-uid-123"
device.​project_idstring or null

Project ID for the device

Example: "project-123"
device.​bundle_idstring or null

Bundle identifier

Example: "com.example.app"
device.​refreshed_atstring or null(date-time)

Last time device was refreshed

Example: "2025-01-28T12:00:00Z"
device.​created_atstring(date-time)required

When device was created

Example: "2025-01-28T12:00:00Z"
device.​updated_atstring(date-time)required

When device was last updated

Example: "2025-01-28T12:00:00Z"
device.​userobject

Full user object with all fields

metaobjectrequired
meta.​request_idstring
Example: "123e4567-e89b-12d3-a456-426614174000"
meta.​timestampstring(date-time)
Example: "2025-01-28T12:00:00Z"
Response
application/json
{ "device": { "id": 1, "user_id": 123, "device_type": "ios", "token": "ExponentPushToken[abc123]", "device_uid": "device-uid-123", "project_id": "project-123", "bundle_id": "com.example.app", "refreshed_at": "2025-01-28T12:00:00Z", "created_at": "2025-01-28T12:00:00Z", "updated_at": "2025-01-28T12:00:00Z", "user": {} }, "meta": { "request_id": "123e4567-e89b-12d3-a456-426614174000", "timestamp": "2025-01-28T12:00:00Z" } }

Delete device by ID

Request

Delete a device by ID. Available to all authenticated users. Users can only delete their own devices, except root admins who can delete any device.

Path
idintegerrequired

Device ID

curl -i -X DELETE \
  'https://fluid-commerce.redocly.app/_mock/docs/apis/swagger/api/devices/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Device deleted successfully

Bodyapplication/json
messagestringrequired
Example: "Device deleted successfully"
deleted_countintegerrequired

Number of devices deleted

Example: 1
metaobjectrequired
meta.​request_idstring
Example: "123e4567-e89b-12d3-a456-426614174000"
meta.​timestampstring(date-time)
Example: "2025-01-28T12:00:00Z"
Response
application/json
{ "message": "Device deleted successfully", "deleted_count": 1, "meta": { "request_id": "123e4567-e89b-12d3-a456-426614174000", "timestamp": "2025-01-28T12:00:00Z" } }

Send push notification to device (Root Admin Only)

Request

Send a push notification to a specific device. This endpoint is restricted to root administrators only.

Path
idintegerrequired

Device ID

Bodyapplication/json
bodystringrequired

Notification body text (required)

Example: "Hello from the admin!"
titlestring

Notification title (optional)

Example: "Admin Message"
dataobject

Custom data payload (optional)

Example: {"action":"open_page","page_id":123}
company_idinteger

Company ID for notification context (optional)

Example: 1
curl -i -X POST \
  'https://fluid-commerce.redocly.app/_mock/docs/apis/swagger/api/devices/{id}/send_push' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "body": "Hello from the admin!",
    "title": "Admin Message",
    "data": {
      "action": "open_page",
      "page_id": 123
    },
    "company_id": 1
  }'

Responses

Push notification sent successfully

Bodyapplication/json
messagestringrequired
Example: "Push notification sent successfully"
deviceobjectrequired
device.​idintegerrequired

Unique identifier for the device

Example: 1
device.​user_idintegerrequired

ID of the user who owns this device

Example: 123
device.​device_typestring or null

Type of device (ios, android, etc.)

Example: "ios"
device.​tokenstring or null

Device push token

Example: "ExponentPushToken[abc123]"
device.​device_uidstring or null

Unique device identifier

Example: "device-uid-123"
device.​project_idstring or null

Project ID for the device

Example: "project-123"
device.​bundle_idstring or null

Bundle identifier

Example: "com.example.app"
device.​refreshed_atstring or null(date-time)

Last time device was refreshed

Example: "2025-01-28T12:00:00Z"
device.​created_atstring(date-time)required

When device was created

Example: "2025-01-28T12:00:00Z"
device.​updated_atstring(date-time)required

When device was last updated

Example: "2025-01-28T12:00:00Z"
device.​userobject

Full user object with all fields

notificationobjectrequired
notification.​bodystring
Example: "Hello from the admin!"
notification.​titlestring or null
Example: "Admin Message"
notification.​dataobject or null
Example: {"action":"open_page"}
notification.​company_idinteger or null
Example: 1
metaobjectrequired
meta.​request_idstring
Example: "123e4567-e89b-12d3-a456-426614174000"
meta.​timestampstring(date-time)
Example: "2025-01-28T12:00:00Z"
Response
application/json
{ "message": "Push notification sent successfully", "device": { "id": 1, "user_id": 123, "device_type": "ios", "token": "ExponentPushToken[abc123]", "device_uid": "device-uid-123", "project_id": "project-123", "bundle_id": "com.example.app", "refreshed_at": "2025-01-28T12:00:00Z", "created_at": "2025-01-28T12:00:00Z", "updated_at": "2025-01-28T12:00:00Z", "user": {} }, "notification": { "body": "Hello from the admin!", "title": "Admin Message", "data": {}, "company_id": 1 }, "meta": { "request_id": "123e4567-e89b-12d3-a456-426614174000", "timestamp": "2025-01-28T12:00:00Z" } }

Get all expo devices for a specific user (Root Admin Only)

Request

Get all expo devices for a specific user. This endpoint is restricted to root administrators only.

Path
user_idintegerrequired

User ID

Query
pageinteger

Page number for pagination (default: 1)

per_pageinteger

Number of items per page (default: 20, max: 100)

device_typestring

Filter devices by type (ios, android, etc.)

active_onlyboolean

Only return devices that have been refreshed recently

sorted_bystring

Sort order. Options: created_at_asc, created_at_desc, refreshed_at_asc, refreshed_at_desc (default: created_at_desc)

search_querystring

Search across device_uid, token, and bundle_id fields

curl -i -X GET \
  'https://fluid-commerce.redocly.app/_mock/docs/apis/swagger/api/devices/user/{user_id}?active_only=true&device_type=string&page=0&per_page=0&search_query=string&sorted_by=string' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

User devices retrieved successfully

Bodyapplication/json
devicesArray of objectsrequired
devices[].​idintegerrequired

Unique identifier for the device

Example: 1
devices[].​user_idintegerrequired

ID of the user who owns this device

Example: 123
devices[].​device_typestring or null

Type of device (ios, android, etc.)

Example: "ios"
devices[].​tokenstring or null

Device push token

Example: "ExponentPushToken[abc123]"
devices[].​device_uidstring or null

Unique device identifier

Example: "device-uid-123"
devices[].​project_idstring or null

Project ID for the device

Example: "project-123"
devices[].​bundle_idstring or null

Bundle identifier

Example: "com.example.app"
devices[].​refreshed_atstring or null(date-time)

Last time device was refreshed

Example: "2025-01-28T12:00:00Z"
devices[].​created_atstring(date-time)required

When device was created

Example: "2025-01-28T12:00:00Z"
devices[].​updated_atstring(date-time)required

When device was last updated

Example: "2025-01-28T12:00:00Z"
devices[].​userobject

Full user object with all fields

user_idintegerrequired

ID of the user

Example: 123
user_namestringrequired

Full name of the user

Example: "John Doe"
metaobjectrequired
meta.​request_idstring
Example: "123e4567-e89b-12d3-a456-426614174000"
meta.​timestampstring(date-time)
Example: "2025-01-28T12:00:00Z"
meta.​paginationobject
Response
application/json
{ "devices": [ {} ], "user_id": 123, "user_name": "John Doe", "meta": { "request_id": "123e4567-e89b-12d3-a456-426614174000", "timestamp": "2025-01-28T12:00:00Z", "pagination": {} } }

Send push notification to all user devices (Root Admin Only)

Request

Send a push notification to all devices belonging to a specific user. This endpoint is restricted to root administrators only.

Path
user_idintegerrequired

User ID

Bodyapplication/json
bodystringrequired

Notification body text (required)

Example: "Important announcement for all your devices!"
titlestring

Notification title (optional)

Example: "System Alert"
dataobject

Custom data payload (optional)

Example: {"action":"sync_data","priority":"high"}
company_idinteger

Company ID for notification context (optional)

Example: 1
curl -i -X POST \
  'https://fluid-commerce.redocly.app/_mock/docs/apis/swagger/api/devices/user/{user_id}/send_push' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "body": "Important announcement for all your devices!",
    "title": "System Alert",
    "data": {
      "action": "sync_data",
      "priority": "high"
    },
    "company_id": 1
  }'

Responses

No devices found for user

Bodyapplication/json
messagestringrequired
Example: "No devices found for user"
user_idintegerrequired

ID of the target user

Example: 123
user_namestringrequired

Full name of the target user

Example: "John Doe"
devices_countintegerrequired

Total number of devices for the user

Example: 0
notifications_sentintegerrequired

Number of successful notifications

Example: 0
notifications_failedinteger

Number of failed notifications

Example: 0
notificationobject
metaobjectrequired
meta.​request_idstring
Example: "123e4567-e89b-12d3-a456-426614174000"
meta.​timestampstring(date-time)
Example: "2025-01-28T12:00:00Z"
Response
application/json
{ "message": "No devices found for user", "user_id": 123, "user_name": "John Doe", "devices_count": 0, "notifications_sent": 0, "notifications_failed": 0, "notification": { "body": "Important announcement for all your devices!", "title": "System Alert", "data": {}, "company_id": 1 }, "meta": { "request_id": "123e4567-e89b-12d3-a456-426614174000", "timestamp": "2025-01-28T12:00:00Z" } }

Display Settings

Operations

Domains

Operations

Drop Zones

Operations

Droplet Categories

Operations

Droplet Installations

Operations

Droplets

Operations

Enrollment Packs

Operations

Enrollments

Operations

FairShare Order Journey

Operations

Fantasy Points

Operations

Feature Flags

Operations

File Resources

Operations

Fluid Pay

Operations

Form Elements

Operations

Forms

Operations

GlobalEmbeds

Operations

Impersonation

Operations

Inventory Levels

Operations

Labels

Operations

Metafield Definitions

Operations

Multi Factor Authentications

Operations

Multi-Factor Authentications

Operations

Notifications

Operations

Onboarding

Operations

Order Fulfillments

Operations

Orders

Operations

Payment

Operations

Payment Accounts

Operations

Payment Integrations

Operations

Payments

Operations

Paypal

Operations

Products

Operations

Prompts

Operations

Public Companies

Operations

Public Drop Zones

Operations

Ranks

Operations

Redirects

Operations

Refunds

Operations

Reps

Operations

Roles

Operations

Settings

Operations

Settings - Companies

Operations

Shares

Operations

Shop

Operations

Subscription Plans

Operations

Subscriptions

Operations

System Monitoring

Operations

Tags

Operations

Tax Categories

Operations

Tracking Informations

Operations

Tree Nodes

Operations

Trees

Operations

Users

Operations

Variant Countries

Operations

Variants

Operations

Webhook Schemas

Operations

Webhooks

Operations