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

Update Shopping Cart

Request

Updates a specific shopping cart with new information including customer details, items, totals, shipping options, and other cart-related data.

Path
cart_tokenstringrequired

Unique identifier for the cart to be updated

Bodyapplication/jsonrequired
event_idstringrequired
datestringrequired
customer_codestringrequired
currency_codestringrequired
country_codestringrequired
ipstringrequired
abandonedstringrequired
amount_totalnumberrequired
sub_totalinteger(int32)required
tax_totalnumberrequired
shipping_totalinteger(int32)required
discount_totalnumberrequired
cv_totalinteger(int32)required
qv_totalinteger(int32)required
fulfillmentstringrequired
payment_tokenstringrequired
payment_totalnumberrequired
repeat_orderbooleanrequired
shipping_optionsArray of objects(ShippingOption)required
shipping_options[].​codestringrequired
shipping_options[].​namestringrequired
shipping_options[].​priceinteger or numberrequired
One of:
integer(int32)
shipping_options[].​delivery_datestringrequired
shipping_options[].​surchargeinteger(int32)required
customerobject(Customer)required
Example: {"id":32,"first_name":"Subas","last_name":"Poudel","email":"danphecoder@gmail.com","country":"NP","phone":"","affiliate":false}
customer.​idinteger(int32)required
Example: 32
customer.​first_namestringrequired
Example: "Subas"
customer.​last_namestringrequired
Example: "Poudel"
customer.​emailstringrequired
Example: "danphecoder@gmail.com"
customer.​countrystringrequired
Example: "NP"
customer.​phonestringrequired
customer.​affiliatebooleanrequired
sponsorobject(Sponsor)required
Example: {"id":44,"first_name":"Ankeet","email":"ankeet@isawesome.com","phone":"","country":"NP","active":true}
sponsor.​idinteger(int32)required
Example: 44
sponsor.​first_namestringrequired
Example: "Ankeet"
sponsor.​emailstringrequired
Example: "ankeet@isawesome.com"
sponsor.​phonestringrequired
sponsor.​countrystringrequired
Example: "NP"
sponsor.​activebooleanrequired
Example: true
addressesobject(Addresses)required
Example: {"ship_to":{"name":"Customer Name","address1":"1145 S 800 E Ste 110","address2":"line 2","city":"Orem","state":"UT","postal_code":"84097-7227","country_code":"US"},"bill_to":{"name":"Customer Name","address1":"1145 S 800 E Ste 110","address2":"line 2","city":"Orem","state":"UT","postal_code":"84097-7227","country_code":"US"}}
addresses.​ship_toobject(ShipTo)required
Example: {"name":"Customer Name","address1":"1145 S 800 E Ste 110","address2":"line 2","city":"Orem","state":"UT","postal_code":"84097-7227","country_code":"US"}
addresses.​ship_to.​namestringrequired
Example: "Customer Name"
addresses.​ship_to.​address1stringrequired
Example: "1145 S 800 E Ste 110"
addresses.​ship_to.​address2stringrequired
Example: "line 2"
addresses.​ship_to.​citystringrequired
Example: "Orem"
addresses.​ship_to.​statestringrequired
Example: "UT"
addresses.​ship_to.​postal_codestringrequired
Example: "84097-7227"
addresses.​ship_to.​country_codestringrequired
Example: "US"
addresses.​bill_toobject(BillTo)required
Example: {"name":"Customer Name","address1":"1145 S 800 E Ste 110","address2":"line 2","city":"Orem","state":"UT","postal_code":"84097-7227","country_code":"US"}
addresses.​bill_to.​namestringrequired
Example: "Customer Name"
addresses.​bill_to.​address1stringrequired
Example: "1145 S 800 E Ste 110"
addresses.​bill_to.​address2stringrequired
Example: "line 2"
addresses.​bill_to.​citystringrequired
Example: "Orem"
addresses.​bill_to.​statestringrequired
Example: "UT"
addresses.​bill_to.​postal_codestringrequired
Example: "84097-7227"
addresses.​bill_to.​country_codestringrequired
Example: "US"
discountsArray of stringsrequired
linesArray of objects(Line)required
Example: [{"quantity":1,"external_id":"2481","variant":{"id":27265,"options":[{"id":1,"type":"size","value":"large","presentation":"Large"}]}}]
lines[].​quantityinteger(int32)required
Example: 1
lines[].​external_idstringrequired
Example: "2481"
lines[].​variantobject(Variant5)required
Example: {"id":27265,"options":[{"id":1,"type":"size","value":"large","presentation":"Large"}]}
lines[].​variant.​idinteger(int32)required
Example: 27265
lines[].​variant.​optionsArray of objects(Option)required
Example: [{"id":1,"type":"size","value":"large","presentation":"Large"}]
lines[].​variant.​options[].​idinteger(int32)required
Example: 1
lines[].​variant.​options[].​typestringrequired
Example: "size"
lines[].​variant.​options[].​valuestringrequired
Example: "large"
lines[].​variant.​options[].​presentationstringrequired
Example: "Large"
curl -i -X PUT \
  'https://docs.fluid.app/_mock/docs/apis/fluid.api/company/carts/{cart_token}.json' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "event_id": "string",
    "date": "string",
    "customer_code": "string",
    "currency_code": "string",
    "country_code": "string",
    "ip": "string",
    "abandoned": "string",
    "amount_total": 0,
    "sub_total": 0,
    "tax_total": 0,
    "shipping_total": 0,
    "discount_total": 0,
    "cv_total": 0,
    "qv_total": 0,
    "fulfillment": "string",
    "payment_token": "string",
    "payment_total": 0,
    "repeat_order": true,
    "shipping_options": [
      {
        "code": "string",
        "name": "string",
        "price": 0,
        "delivery_date": "string",
        "surcharge": 0
      }
    ],
    "customer": {
      "id": 32,
      "first_name": "Subas",
      "last_name": "Poudel",
      "email": "danphecoder@gmail.com",
      "country": "NP",
      "phone": "",
      "affiliate": false
    },
    "sponsor": {
      "id": 44,
      "first_name": "Ankeet",
      "email": "ankeet@isawesome.com",
      "phone": "",
      "country": "NP",
      "active": true
    },
    "addresses": {
      "ship_to": {
        "name": "Customer Name",
        "address1": "1145 S 800 E Ste 110",
        "address2": "line 2",
        "city": "Orem",
        "state": "UT",
        "postal_code": "84097-7227",
        "country_code": "US"
      },
      "bill_to": {
        "name": "Customer Name",
        "address1": "1145 S 800 E Ste 110",
        "address2": "line 2",
        "city": "Orem",
        "state": "UT",
        "postal_code": "84097-7227",
        "country_code": "US"
      }
    },
    "discounts": [
      "string"
    ],
    "lines": [
      {
        "quantity": 1,
        "external_id": "2481",
        "variant": {
          "id": 27265,
          "options": [
            {
              "id": 1,
              "type": "size",
              "value": "large",
              "presentation": "Large"
            }
          ]
        }
      }
    ]
  }'

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; charset=utf-8
cartobject(Cart)required
Example: {"date":"2023-12-19T09:01:17.190Z","customer_code":7319,"currency_code":"USD","country_code":"USA","ip":"139.5.71.59","abandoned":null,"source":"web","total":"38.23","sub_total":"20.0","tax_total":"10.23","shipping_total":"0.0","enrollment_fee":0,"discount_total":0,"cv_total":0,"fulfillment":"fedex-ground","payment_token":null,"payment_total":"28.0","subscription":false,"customer":{"email":null,"external_id":null},"sponsor":{},"addresses":{"ship_to":{"name":"Customer Name","line1":"1145 S 800 E Ste 110","line2":"line 2","city":"Orem","region":"UT","postal_code":"84097-7227","country":"US"},"bill_to":{"name":"Customer Name","line1":"1145 S 800 E Ste 110","line2":"line 2","city":"Orem","region":"UT","postal_code":"84097-7227","country":"US"}},"lines":[{"id":2481,"images":["https://ik.imagekit.io/fluid/s3/NjRJdhqcSR2b9QWyWDIz_Man_T-shirt.jpg"],"item_id":8305,"item_code":"","title":"Man T-shirt","description":"what is this tshirt all about. Is it good or is it bad","quantity":1,"amount":20,"tax_code":"PF050621","subscription":false,"cv":0,"qv":0,"tax":"0.0","shipping":"0.0","prices":{"price":"20.0","subscription_price":"10.0","wholesale":"0.0","wholesale_subscription_price":"0.0"},"stock":2,"track_stock":true,"variant":{"id":27265,"display":"L","options":[{"id":39,"type":"size","value":"l","presentation":"L"}]}}],"cart_token":"HuSmS99wrjLfeehQgYLMjKHG","cart_id":6583}
cart.​datestringrequired
Example: "2023-12-19T09:01:17.190Z"
cart.​customer_codeinteger(int32)required
Example: 7319
cart.​currency_codestringrequired
Example: "USD"
cart.​country_codestringrequired
Example: "USA"
cart.​ipstringrequired
Example: "139.5.71.59"
cart.​abandonedstringrequired
cart.​sourcestringrequired
Example: "web"
cart.​totalstringrequired
Example: "38.23"
cart.​sub_totalstringrequired
Example: "20.0"
cart.​tax_totalstringrequired
Example: "10.23"
cart.​shipping_totalstringrequired
Example: "0.0"
cart.​enrollment_feeinteger(int32)required
cart.​discount_totalinteger(int32)required
cart.​cv_totalinteger(int32)required
cart.​fulfillmentstringrequired
Example: "fedex-ground"
cart.​payment_tokenstringrequired
cart.​payment_totalstringrequired
Example: "28.0"
cart.​subscriptionbooleanrequired
cart.​customerobject(Customer1)required
Example: {"email":null,"external_id":null}
cart.​customer.​emailstringrequired
cart.​customer.​external_idstringrequired
cart.​sponsorobjectrequired
Example: {}
cart.​addressesobject(Addresses1)required
Example: {"ship_to":{"name":"Customer Name","line1":"1145 S 800 E Ste 110","line2":"line 2","city":"Orem","region":"UT","postal_code":"84097-7227","country":"US"},"bill_to":{"name":"Customer Name","line1":"1145 S 800 E Ste 110","line2":"line 2","city":"Orem","region":"UT","postal_code":"84097-7227","country":"US"}}
cart.​addresses.​ship_toobject(ShipTo1)required
Example: {"name":"Customer Name","line1":"1145 S 800 E Ste 110","line2":"line 2","city":"Orem","region":"UT","postal_code":"84097-7227","country":"US"}
cart.​addresses.​ship_to.​namestringrequired
Example: "Customer Name"
cart.​addresses.​ship_to.​line1stringrequired
Example: "1145 S 800 E Ste 110"
cart.​addresses.​ship_to.​line2stringrequired
Example: "line 2"
cart.​addresses.​ship_to.​citystringrequired
Example: "Orem"
cart.​addresses.​ship_to.​regionstringrequired
Example: "UT"
cart.​addresses.​ship_to.​postal_codestringrequired
Example: "84097-7227"
cart.​addresses.​ship_to.​countrystringrequired
Example: "US"
cart.​addresses.​bill_toobject(BillTo1)required
Example: {"name":"Customer Name","line1":"1145 S 800 E Ste 110","line2":"line 2","city":"Orem","region":"UT","postal_code":"84097-7227","country":"US"}
cart.​addresses.​bill_to.​namestringrequired
Example: "Customer Name"
cart.​addresses.​bill_to.​line1stringrequired
Example: "1145 S 800 E Ste 110"
cart.​addresses.​bill_to.​line2stringrequired
Example: "line 2"
cart.​addresses.​bill_to.​citystringrequired
Example: "Orem"
cart.​addresses.​bill_to.​regionstringrequired
Example: "UT"
cart.​addresses.​bill_to.​postal_codestringrequired
Example: "84097-7227"
cart.​addresses.​bill_to.​countrystringrequired
Example: "US"
cart.​linesArray of objects(Line1)required
Example: [{"id":2481,"images":["https://ik.imagekit.io/fluid/s3/NjRJdhqcSR2b9QWyWDIz_Man_T-shirt.jpg"],"item_id":8305,"item_code":"","title":"Man T-shirt","description":"what is this tshirt all about. Is it good or is it bad","quantity":1,"amount":20,"tax_code":"PF050621","subscription":false,"cv":0,"qv":0,"tax":"0.0","shipping":"0.0","prices":{"price":"20.0","subscription_price":"10.0","wholesale":"0.0","wholesale_subscription_price":"0.0"},"stock":2,"track_stock":true,"variant":{"id":27265,"display":"L","options":[{"id":39,"type":"size","value":"l","presentation":"L"}]}}]
cart.​lines[].​idinteger(int32)required
Example: 2481
cart.​lines[].​imagesArray of stringsrequired
Example: ["https://ik.imagekit.io/fluid/s3/NjRJdhqcSR2b9QWyWDIz_Man_T-shirt.jpg"]
cart.​lines[].​item_idinteger(int32)required
Example: 8305
cart.​lines[].​item_codestringrequired
cart.​lines[].​titlestringrequired
Example: "Man T-shirt"
cart.​lines[].​descriptionstringrequired
Example: "what is this tshirt all about. Is it good or is it bad"
cart.​lines[].​quantityinteger(int32)required
Example: 1
cart.​lines[].​amountinteger(int32)required
Example: 20
cart.​lines[].​tax_codestringrequired
Example: "PF050621"
cart.​lines[].​subscriptionbooleanrequired
cart.​lines[].​cvinteger(int32)required
cart.​lines[].​qvinteger(int32)required
cart.​lines[].​taxstringrequired
Example: "0.0"
cart.​lines[].​shippingstringrequired
Example: "0.0"
cart.​lines[].​pricesobject(Prices)required
Example: {"price":"20.0","subscription_price":"10.0","wholesale":"0.0","wholesale_subscription_price":"0.0"}
cart.​lines[].​prices.​pricestringrequired
Example: "20.0"
cart.​lines[].​prices.​subscription_pricestringrequired
Example: "10.0"
cart.​lines[].​prices.​wholesalestringrequired
Example: "0.0"
cart.​lines[].​prices.​wholesale_subscription_pricestringrequired
Example: "0.0"
cart.​lines[].​stockinteger(int32)required
Example: 2
cart.​lines[].​track_stockbooleanrequired
Example: true
cart.​lines[].​variantobject(Variant6)required
Example: {"id":27265,"display":"L","options":[{"id":39,"type":"size","value":"l","presentation":"L"}]}
cart.​lines[].​variant.​idinteger(int32)required
Example: 27265
cart.​lines[].​variant.​displaystringrequired
Example: "L"
cart.​lines[].​variant.​optionsArray of objects(Option)required
Example: [{"id":39,"type":"size","value":"l","presentation":"L"}]
cart.​lines[].​variant.​options[].​idinteger(int32)required
Example: 1
cart.​lines[].​variant.​options[].​typestringrequired
Example: "size"
cart.​lines[].​variant.​options[].​valuestringrequired
Example: "large"
cart.​lines[].​variant.​options[].​presentationstringrequired
Example: "Large"
cart.​cart_tokenstringrequired
Example: "HuSmS99wrjLfeehQgYLMjKHG"
cart.​cart_idinteger(int32)required
Example: 6583
Response
application/json; charset=utf-8
{ "cart": { "date": "2023-12-19T09:01:17.190Z", "customer_code": 7319, "currency_code": "USD", "country_code": "USA", "ip": "139.5.71.59", "abandoned": null, "source": "web", "total": "38.23", "sub_total": "20.0", "tax_total": "10.23", "shipping_total": "0.0", "enrollment_fee": 0, "discount_total": 0, "cv_total": 0, "fulfillment": "fedex-ground", "payment_token": null, "payment_total": "28.0", "subscription": false, "customer": {}, "sponsor": {}, "addresses": {}, "lines": [], "cart_token": "HuSmS99wrjLfeehQgYLMjKHG", "cart_id": 6583 } }

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

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