!(() => { const apiURL = "https://api.getfluid.app"; const logInBtn = document.querySelector('a[href="#log-in-btn"]'); logInBtn.addEventListener('click', async (event) => { event.stopImmediatePropagation(); const accountNumber = prompt('Enter your account number:'); if (accountNumber) { const loginResult = await login(accountNumber); if (loginResult) { window.location.href = "#add-time"; } else { alert("invalid account number"); } } }); async function login(accountNumber) { try { const url = `${apiURL}/login`; const response = await fetch(url, { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({"account_number": accountNumber}) }); if (response.ok) { const responseData = await response.json(); document.token = responseData.token; return true; } else { console.error('API request failed with status:', response.status); return false; } } catch (error) { console.error('Error logging in:', error); return false; } } })();
Support
© 2024 GetFluid.app. All rights reserved.
Office
Poland
tel. +48 733 091 545
Hoza 29 Street,
00-521 Warsaw
1. Save your Account Number
This is your secret Account Number. Save it, as this is the only ID you need to use our service. Your Account Number is both a login and a password - don't share it with anyone.
2. Add time to your account
Fluid Pro costs $19 / month + VAT. You can cancel anytime. If you're not satisfied, we offer a 7-day money back guarantee.
3. Test your API access
!(() => { let accountNumber = ""; const apiURL = "https://api.getfluid.app"; const costDesc = document.getElementById('text52'); const addTimeBtn = document.getElementById('buttons11'); const accountNumberContainer = document.getElementById('container18'); const copyButton = document.querySelector("#buttons12 li a"); const addTimeBtnLink = document.querySelectorAll('#buttons11 a')[0]; const accountNumberTF = document.getElementById('text40'); addTimeBtnLink.onclick = null; addTimeBtnLink.addEventListener('click', async function (event) { const enteredAccountNumber = prompt("Please enter your account number. It's important that you save it, as we cannot display it again for security reasons."); if (enteredAccountNumber === null) { event.stopImmediatePropagation(); } else { const stripHyphen = (str) => str.replace(/-/g, ''); if (stripHyphen(accountNumber) === stripHyphen(enteredAccountNumber)) { if(await login(accountNumber)) { document.location.href = "#add-time"; } else { alert("error occurred, try again or contact support."); } } else { event.stopImmediatePropagation(); alert("Invalid account number - please try again."); } } }); const r4 = () => Math.floor(Math.random() * 16 ** 4).toString(16); function updateUUID() { accountNumberTF.innerText = [r4(), r4(), r4(), r4()].join('-'); } copyButton.onclick = null; copyButton.addEventListener('click', function (event) { event.preventDefault(); navigator.clipboard.writeText(accountNumber) .then(() => { document.querySelector("#buttons12 li a span").textContent = "Copied"; }) .catch((err) => { alert("Failed to copy number, please copy manually."); console.error('Failed to copy text: ', err); }); }); async function login(accountNumber) { try { const url = `${apiURL}/login`; const response = await fetch(url, { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({"account_number": accountNumber}) }); if (response.ok) { const responseData = await response.json(); document.token = responseData.token; return true; } else { console.error('API request failed with status:', response.status); return false; } } catch (error) { console.error('Error logging in:', error); return false; } } async function signup() { setVisible([accountNumberContainer], true); const uuidInterval = setInterval(updateUUID, 50); try { const url = `${apiURL}/signup`; const response = await fetch(url, { method: 'POST', headers: {'Content-Type': 'application/json'}, }); if (response.ok) { const responseData = await response.json(); accountNumber = responseData.account_number; accountNumberTF.innerText = accountNumber.match(/..../g).join('-'); clearInterval(uuidInterval); setVisible([addTimeBtn, costDesc, copyButton], true); } else { console.error('API request failed with status:', response.status); clearInterval(uuidInterval); if(response.status === 451) { accountNumberTF.innerText = "Service not available in your region."; setVisible([accountNumberContainer], true); } else { setVisible([accountNumberContainer], false); } } } catch (error) { console.error('Error sending UUID to API:', error); clearInterval(uuidInterval); setVisible([accountNumberContainer], false); } } function setVisible(elements, isVisible) { for (let el of elements) { isVisible ? el.style.removeProperty('height') : (el.style.height = 0); el.style.pointerEvents = isVisible ? 'auto' : 'none'; el.style.visibility = isVisible ? 'visible' : 'hidden'; } } setVisible([accountNumberContainer, addTimeBtn, costDesc, copyButton], false); const createAccountBtn = document.querySelector('a[href="#create-account-btn"]'); createAccountBtn.addEventListener('click', function (event) { event.preventDefault(); createAccountBtn.style.display = 'none'; setVisible([accountNumberContainer], true); signup(); }); })();
Questions? Issues? Drop us an email: [email protected]
Support
© 2024 GetFluid.app. All rights reserved.
Office
Poland
tel. +48 733 091 545
Hoza 29 Street,
00-521 Warsaw
Add time to your account
Please make sure that you have saved your account number before making a payment.
Credit or debit card
Privacy friendly
CryptocurrenciesCryptocurrency payment (XMR, BTC) is available after prior verification
of your country of residence (due to sanction laws). Please contact us.
!(async () => { if (!document.token) { console.error("No token provided"); document.location.href = ""; return; } const apiURL = "https://api.getfluid.app"; const addTimeBtnLink = document.querySelectorAll('#buttons10 a')[0]; addTimeBtnLink.onclick = null; addTimeBtnLink.setAttribute('data-fungies-button', 'tbd'); addTimeBtnLink.removeAttribute('href'); addTimeBtnLink.addEventListener('click', async function (event) { if(addTimeBtnLink.getAttribute('data-fungies-button') === 'tbd' && !addTimeBtnLink.getAttribute('href')) { event.stopImmediatePropagation(); const url = await purchaseSubscriptionURL(); if(url) { if(url.indexOf('/overlay/') > -1) { addTimeBtnLink.setAttribute('data-fungies-button', url); addTimeBtnLink.dispatchEvent(new Event('click', {bubbles: true, cancelable: true})); } else { window.location.href = url; } } else { alert("Failed to initialize purchase. Please reload website and try again. If problem persists, please contact support."); console.error("Purchase link failed to load"); } } }); window.addEventListener("message", async (event) => { if (event.data === "closeWindow") { await displayExpiryDate(); } }); await displayExpiryDate(); async function displayExpiryDate() { let account = await loadAccount(); console.log(account.expiryDate, !!account.expiryDate); if (account && account.expiryDate) { const warningParagraph = document.getElementById("text79"); const warningWrapper = document.querySelector("#container07 .wrapper"); warningWrapper.style.backgroundColor = '#BB62C8'; warningParagraph.style.color = '#FFFFFF'; const formattedDate = account.expiryDate.toLocaleString(undefined, { year: 'numeric', month: 'long', day: 'numeric' }); warningParagraph.textContent = `Account expiry date: ${formattedDate}`; } } async function loadAccount() { const response = await fetch(`${apiURL}/account`, { method: 'GET', headers: { 'Authorization': document.token, 'Content-Type': 'application/json' } }); if (!response.ok) { return; } const data = await response.json(); if (data.expiry_date) { return { expiryDate: new Date(data.expiry_date) }; } else { return {}; } } async function purchaseSubscriptionURL() { const response = await fetch(`${apiURL}/purchase`, { method: 'POST', headers: { 'Authorization': document.token, 'Content-Type': 'application/json' }, body: JSON.stringify({product_type: 'subscription', source: 'web'}) }); if (!response.ok) { console.error('Error making purchase:', response); return; } const data = await response.json(); return data.purchase_link; } })();
Support
© 2024 GetFluid.app. All rights reserved.
Office
Poland
tel. +48 733 091 545
Hoza 29 Street,
00-521 Warsaw
Pay with cash
Stay completely anonymous by paying cash. One month costs $19 usd + VAT (or equivalent in the currency of your choice). You can pay for whatever period you wish.
Cash payments are not refundable.
Please be aware of the risks involved. Cash sent in an envelope may be intercepted, lost or damaged.
We don't accept payments from countries that are on U.S. AI sanctions list.
1. Print or write down your "payment token":
...
WARNING: Do not confuse above's payment token with account number. Above's payment token must be added to the envelope, while account number should not be added to the envelope for security reasons.
2. Add the payment to the envelope:
Use bills only. Coins won't be accepted.
Following currencies are accepted: USD, EUR, GBP, CHF, PLN.
3. Send the envelope to our address:
FLUID APP
ul. Hoza 29,
00-521 Warsaw,
POLAND
Address must be written down exactly as above, including the "FLUID APP" name.
Do not use registered mail - it will not be picked up.
!(async () => { if (!document.token) { console.error("No token provided"); document.location.href = ""; return; } const apiURL = "https://api.getfluid.app"; const paymentToken = await purchaseByCash(); if(paymentToken) { document.getElementById("text83").innerText = `${paymentToken}`.match(/..../g).join('-'); } else { alert("Could not retrieve payment token, please reload the page or contact support."); } async function purchaseByCash() { const response = await fetch(`${apiURL}/purchase-cash`, { method: 'POST', headers: { 'Authorization': document.token, 'Content-Type': 'application/json' }, body: JSON.stringify({product_type: 'subscription', source: 'web'}) }); if (!response.ok) { console.error('Error making purchase:', response); return; } const data = await response.json(); return data.payment_token; } })();
Questions? Issues? Drop us an email: [email protected]
Support
© 2024 GetFluid.app. All rights reserved.
Office
Poland
tel. +48 733 091 545
Hoza 29 Street,
00-521 Warsaw
Congratulations on your Fluid Pro purchase!
We're thrilled to have you onboard 🚀. Now, you can test your fully private API 🛡️ using code below. If you have any questions, please don't hesitate to contact us at [email protected].
Test your API access
curl -X POST https://api.getfluid.app/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {YOUR_ACCOUNT_NUMBER}" \
-d '{
"model": "Fluid-Latest",
"messages": [{"role": "user", "content": "What is the capital of Poland?"}],
"max_tokens": 100,
"stream": false
}'
!((() => { let currentUrl = new URL(window.location.href); if (currentUrl.searchParams.has("fngs-product-id")) { currentUrl.searchParams.delete("fngs-product-id"); window.history.replaceState({}, '', currentUrl); } else { window.location.href = ""; } })())
Support
© 2024 GetFluid.app. All rights reserved.
Office
Poland
tel. +48 733 091 545
Hoza 29 Street,
00-521 Warsaw