Fluid APIs (1.0.0)

The Fluid 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
Languages
Servers
Mock server
https://docs.fluid.app/_mock/docs/apis/fluid.api/
Production server with company subdomain
https://{company}.fluid.app/api/
Local development server
http://fluid.lvh.me:{port}/api/

Activities

Manage activities

Operations

Carts

Carts api that can be used for api call by webhooks of external applications or admins.

Operations

CatchUps

Catchup is a unique feature in our mobile app designed to keep you informed about everything you might have missed while you were away. From unread messages to visitor activities, it ensures you stay up-to-date with all the important details.

Operations

Categories

Categories

Operations

Collections

Products can be organized under a collection or multiple collections.

Operations

Contacts

Manage contacts

Operations

Conversations

Conversations within Fluid's platform serve as the central hub where users, contacts and/or automated agents (such as Response Bots and Broadcast Bots) come together to exchange messages. Each conversation can include multiple participants, ranging from individual users to bots designed to provide interactive support or broadcast important updates. With a flexible architecture, Conversations allow for rich interactions, whether it’s real-time messaging, automated responses, or large-scale broadcasts.

The structure supports seamless communication, enabling participants to share information effectively while allowing developers to build and extend features like bots that can respond, broadcast, or even act as virtual assistants within any conversation.

Operations

Custom Pages

Create and manage custom pages within the application. Custom pages allow you to build unique, branded experiences and content areas tailored to your needs.

Operations

Events

Manage and track system events that occur within the application. Events provide a way to monitor and respond to various activities and state changes.

Operations

Libraries

Manage reusable components and resources that can be shared across your application. Libraries help maintain consistency and reduce duplication in your implementation.

Operations

Media

Handle media assets such as images, videos, and documents that are used throughout the application. Includes functionality for upload, storage, and delivery of media content.

Operations

Messages

Messages are the core units of communication within Fluid’s platform, facilitating interactions between participants in a conversation. Each message can originate from either a user or a contact or an automated bot, allowing for dynamic exchanges ranging from simple text messages to more complex data payloads.

Messages support various use cases, whether it's delivering personalized responses via Response Bots, broadcasting announcements from Broadcast Bots, or regular user-to-user communication. The flexible structure of messages ensures that they can be tailored to suit different needs, providing a robust foundation for real-time interaction, automation, and seamless integration within the broader conversation framework.

Operations

Orders

Manage company orders using API endpoints.

Operations

Points

Manage points

Operations

ProductRedirects

Handle product URL redirects to maintain SEO value and ensure proper routing when product URLs change or products are moved within your catalog.

Operations

Products

Product API that can be used by external applications or admins.

Operations

List Products

Request

This endpoint retrieves the list of products for the company. Response includes an array with details of products and their associated variants, variant_countries (pricing in different countries), collections, and images.

Query
langstring

The language code of the desired language. If not specified, the company's default language is used. Can be upper case or lower case. Uses 2 letter ISO language code

Example: lang=en
country_codestring

The country code for specifying the country. The currency and pricing will change depending on the country selected. If not specified, the company's default country is used. Uses 2 letter ISO country code (e.g. 'us', 'ca', 'es', 'fr'). Can be upper case or lower case.

Example: country_code=us
statusstring

The status of the products. Available statuses are ['active', 'draft', 'archived', 'all']. If not specified, the default status is 'active'.

Default "active"
Enum"active""draft""archived""all"
category_titlestring

Case-sensitive title of category to filter by. Retrieves all products that are included in the specified category and sub categories. Do not use if using category_id.

category_idinteger

ID of category to filter by. Retrieves all products that are included in the specified category and sub categories. Do not use if using category_title.

availabilitystring

Filter for the availability of the product. If not specified, the default is 'all'.

Default "all"
Enum"all""in_stock""keep_selling"
collection_idinteger or Array of integers

Filter by a collection or multiple collections. See the Collections API for more information.

One of:
integer
order_bystring

Specify how the results are ordered. Available values are ['title', 'price', 'cv', 'created_at']. Add 'asc' or 'desc' to specify direction (defaults to 'asc'). If not specified, default order is 'PRIORITY DESC'. Use the send_to_top API to set highest priority.

Example: order_by=title desc
Headers
Content-Typestringrequired
Value"application/json"
Example: application/json
curl -i -X GET \
  'https://docs.fluid.app/_mock/docs/apis/fluid.api/company/v1/products?availability=all&category_id=0&category_title=string&collection_id=0&country_code=us&lang=en&order_by=title%20desc&status=active' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json'

Responses

OK

Headers
Content-Typestring

The content type of the response

Example: "application/json"
Content-Lengthstring

The length of the response content in bytes

Example: "981"
X-Request-Idstring

A unique identifier for the request

Example: "b1b7bf86-146e-4c66-b4c6-ac6f0f9ddafa"
Bodyapplication/json
statusstring
Example: "success"
dataobject
Response
application/json
{ "status": "success", "data": { "products": [] } }

Create Product

Request

Create a new Product with associated variants, variant_countries (pricing in different countries), collections, and images.

Headers
Content-Typestringrequired
Value"application/json"
Example: application/json
Bodyapplication/jsonrequired
productobjectrequired
Example: {"sku":"PSKU83983","title":"CM Test Product Name","description":"test product description changed","image_url":"https://cdn.testimageurl.product","country_code":"US","active":true,"price":99.8,"shipping":4}
product.​skustringrequired

The default SKU for the product. You can add more variants with their SKU after product is created.

Example: "PSKU83983"
product.​titlestringrequired

The product title

Example: "CM Test Product Name"
product.​image_urlstringrequired

A URL for the default image

Example: "https://cdn.testimageurl.product"
product.​country_codestringrequired

2 letter ISO country code (e.g. 'us', 'ca', 'es', 'fr'). Can be upper case or lower case.

Example: "US"
product.​pricenumber(decimal)required

The price in the currency determined by country_code

Example: 99.8
product.​shippingnumber(decimal)required

The shipping price

Example: 4
product.​statusstringrequired

The status of the product

Default "draft"
Enum"active""draft""archived"
product.​descriptionstring

Rich text description of the product, including HTML

Example: "test product description changed"
product.​introductionstring

Brief description of the product

product.​feature_textstring

Detailed information about the product, like tech specs or nutrition information. Rich text, including HTML.

product.​upcstring

The UPC of the product

product.​category_idinteger

The id of the category to assign to the product

product.​subscription_pricenumber(decimal)

The recurring monthly price (if the product is a subscription)

product.​publicboolean

Whether the product is available to the public

Default true
product.​in_stockboolean

If false, product won't be available for purchase unless keep_selling is true

Default true
product.​keep_sellingboolean

Allow selling items that are on backorder (out of stock)

Default false
product.​no_indexboolean

If true, tells search engines not to include this product/page in search results

Default false
curl -i -X POST \
  https://docs.fluid.app/_mock/docs/apis/fluid.api/company/v1/products \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "product": {
      "sku": "PSKU83983",
      "title": "CM Test Product Name",
      "description": "test product description changed",
      "image_url": "https://cdn.testimageurl.product",
      "country_code": "US",
      "active": true,
      "price": 99.8,
      "shipping": 4
    }
  }'

Responses

OK

Headers
Content-Typestring

The content type of the response

Example: "application/json"
Content-Lengthstring

The length of the response content in bytes

Example: "981"
X-Request-Idstring

A unique identifier for the request

Example: "b1b7bf86-146e-4c66-b4c6-ac6f0f9ddafa"
Bodyapplication/json
statusstring
Example: "success"
dataobject
Response
application/json
{ "status": "success", "data": { "product": {} } }

Retrieve Product Details

Request

Retrieve the details of a specific Product.

Path
idstringrequired

Product ID or slug to retrieve the product details

Query
langstring

ISO 639-1 language code for the desired language (e.g., 'en', 'es', 'fr')

Enum"en""es""fr"
country_codestring

ISO 3166-1 alpha-2 country code for pricing and currency (e.g., 'us', 'ca', 'es', 'fr')

Enum"us""ca""es""fr"
curl -i -X GET \
  'https://docs.fluid.app/_mock/docs/apis/fluid.api/company/v1/products/{id}?country_code=us&lang=en' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Headers
Content-Typestring

The content type of the response

Example: "application/json"
Content-Lengthstring

The length of the response content in bytes

Example: "981"
X-Request-Idstring

A unique identifier for the request

Example: "b1b7bf86-146e-4c66-b4c6-ac6f0f9ddafa"
Bodyapplication/json
any
Response
application/json
{ "status": "success", "data": { "product": {} } }

Add Product to Collection

Request

Assigns a product to a specified collection.

Path
idintegerrequired

The ID of the product to assign to a collection

Bodyapplication/x-www-form-urlencoded
collection_idinteger(int32)required
Example: 47
curl -i -X POST \
  'https://docs.fluid.app/_mock/docs/apis/fluid.api/company/v1/products/{id}/add_to_collection' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d collection_id=47

Responses

OK

Headers
Content-Typestring

The content type of the response

Example: "application/json"
Content-Lengthstring

The length of the response content in bytes

Example: "981"
X-Request-Idstring

A unique identifier for the request

Example: "b1b7bf86-146e-4c66-b4c6-ac6f0f9ddafa"
Bodyapplication/json
any
Response
application/json
{ "status": "success", "data": { "message": "product (2200) added to collection (47)" } }

Remove Product from Collection

Request

Removes a specified product from a collection.

Path
idintegerrequired

The ID of the product to remove from the collection

Query
collection_idintegerrequired

The ID of the collection from which to remove the product

curl -i -X DELETE \
  'https://docs.fluid.app/_mock/docs/apis/fluid.api/company/v1/products/{id}/remove_from_collection?collection_id=0' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Headers
Content-Typestring

The content type of the response

Example: "application/json"
Content-Lengthstring

The length of the response content in bytes

Example: "981"
X-Request-Idstring

A unique identifier for the request

Example: "b1b7bf86-146e-4c66-b4c6-ac6f0f9ddafa"
Bodyapplication/json
any
Response
application/json
{ "status": "success", "data": { "message": "product (2200) removed from collection (47)" } }

Move Product to Top Priority

Request

Changes the priority of a product to the highest level, moving it to the top of the default product listing order.

Path
idintegerrequired

The unique identifier of the product to be moved to top priority

curl -i -X PATCH \
  'https://docs.fluid.app/_mock/docs/apis/fluid.api/company/v1/products/{id}/send_to_top' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Headers
Content-Typestring

The content type of the response

Example: "application/json"
Content-Lengthstring

The length of the response content in bytes

Example: "981"
X-Request-Idstring

A unique identifier for the request

Example: "b1b7bf86-146e-4c66-b4c6-ac6f0f9ddafa"
Bodyapplication/json
any
Response
application/json
{ "status": "success", "data": { "message": "priority set to 30" } }

Duplicate Product

Request

Make a copy of an existing product.

Path
idintegerrequired

The ID of the product to duplicate

curl -i -X POST \
  'https://docs.fluid.app/_mock/docs/apis/fluid.api/company/v1/products/{id}/duplicate' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Headers
Content-Typestring

The content type of the response

Example: "application/json"
Content-Lengthstring

The length of the response content in bytes

Example: "981"
X-Request-Idstring

A unique identifier for the request

Example: "b1b7bf86-146e-4c66-b4c6-ac6f0f9ddafa"
Bodyapplication/json
any
Response
application/json
{ "status": "success", "data": { "product": {} } }

Find Products by External ID

Request

Retrieves product details by searching with an external ID.

Query
external_idintegerrequired

External identifier of the product to find

curl -i -X GET \
  'https://docs.fluid.app/_mock/docs/apis/fluid.api/company/v1/products/find_by_external_id?external_id=0' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Headers
Content-Typestring

The content type of the response

Example: "application/json"
Content-Lengthstring

The length of the response content in bytes

Example: "981"
X-Request-Idstring

A unique identifier for the request

Example: "b1b7bf86-146e-4c66-b4c6-ac6f0f9ddafa"

Recipients

Manage Users for the company. Using this api you can list, create, update and delete the users for the company.

Operations

Social Media

Social Media is used to store the username for the companies various social media accounts.

Tiles

Tiles are a crucial feature in our admin portal, designed to facilitate Single Sign On (SSO) flows for users within the app. Each Tile represents a redirecting button within the user's app that links to a specific URL, with the addition of a temporary authorization token (auth_token) as a parameter.

Here's how the process works:

  1. In the admin portal, a new Tile is created. Each Tile is essentially a shortcut to a specific URL, such as https://www.example.com.
  2. The Tile appears in the user's app interface as a button, featuring a representative image. This makes it easy for users to identify and access.
  3. When an authorized User clicks on the Tile in app, an authorization token (auth_token) is generated and appended to the URL as a parameter. For example, https://www.example.com?auth_token=ABC123.
  4. When the user clicks on the Tile (button), they are automatically redirected to the URL embedded in the Tile, carrying the auth_token along.
  5. The user's browser then visits the URL, and the auth_token is passed to the link.
  6. The User Show API endpoint accepts the auth_token to fetch the user's details. This data can be utilized to automatically sign the user into their account, eliminating the need for manual login. Alternatively, it can be used to generate an app-in-an-app experience where the user navigates within a portion of your app as an authenticated user.

This Tile functionality streamlines the user experience, granting a smoother navigation process and easing user access with a Single Sign On (SSO) flow.

Note: auth_token expires after 30 minutes.

Operations

Users

Manage Users for the company. Using this api you can list, create, update and delete the users for the company.

Operations

Variants

Manage product variants including different sizes, colors, or other attributes that define unique versions of a product.

Operations

Webhooks

Webhook Events are generated by some Fluid resources when certain actions
are completed, such as the creation of an order, abandonment of cart, or
the deactivation of an user. By requesting events, your app can know
when certain actions have occurred in the fluid.

Webhook Overview

Operations

Get Company Social Media Usernames

Request

Returns the social media usernames for the company.

curl -i -X GET \
  https://docs.fluid.app/_mock/docs/apis/fluid.api/api/company/settings/social_media

Responses

Successful response

Bodyapplication/json
facebookstring
Example: "company_facebook"
twitterstring
Example: "company_twitter"
instagramstring
Example: "company_instagram"
linkedinstring
Example: "company_linkedin"
youtubestring
Example: "company_youtube"
tiktokstring
Example: "company_tiktok"
pintereststring
Example: "company_pinterest"
Response
application/json
{ "facebook": "company_facebook", "twitter": "company_twitter", "instagram": "company_instagram", "linkedin": "company_linkedin", "youtube": "company_youtube", "tiktok": "company_tiktok", "pinterest": "company_pinterest" }

Update Company Social Media Usernames

Request

Updates the social media usernames for the company.

Bodyapplication/jsonrequired
social_mediaobject
curl -i -X PUT \
  https://docs.fluid.app/_mock/docs/apis/fluid.api/api/company/settings/social_media \
  -H 'Content-Type: application/json' \
  -d '{
    "social_media": {
      "facebook": "updated_facebook",
      "twitter": "updated_twitter",
      "instagram": "updated_instagram",
      "linkedin": "updated_linkedin",
      "youtube": "updated_youtube",
      "tiktok": "updated_tiktok",
      "pinterest": "updated_pinterest"
    }
  }'

Responses

Successful update

Bodyapplication/json
facebookstring
Example: "updated_facebook"
twitterstring
Example: "updated_twitter"
instagramstring
Example: "updated_instagram"
linkedinstring
Example: "updated_linkedin"
youtubestring
Example: "updated_youtube"
tiktokstring
Example: "updated_tiktok"
pintereststring
Example: "updated_pinterest"
Response
application/json
{ "facebook": "updated_facebook", "twitter": "updated_twitter", "instagram": "updated_instagram", "linkedin": "updated_linkedin", "youtube": "updated_youtube", "tiktok": "updated_tiktok", "pinterest": "updated_pinterest" }

Customer Notes

Operations

Customers

Operations