Vagibond
Vagibond

Follow Vagibond

Stay connected with us on social media for updates on new ventures.

Thanks for subscribing!
Visit FUQbuddy Site

FUQbuddy API

Self-service support deflection at scale. Embed FUQ widgets to maintain the illusion of customer care while redirecting users into an endless rabbit hole of circular answers until they solve it themselves or don't give a FUQ anymore. Cut support costs by 94%.

💰
$4.2M Support Costs Saved
2,847 companies have deflected 12.4M support tickets. Their customers are still waiting. That's operational efficiency.

What you can build

Live Demo

See what you can build with the FUQbuddy API.

FUQbuddy Demo

Quickstart

Start FUQing your customers in under 2 minutes. No experience required.

1. Add the widget

Drop in the FUQ widget with a single line of code. No API key needed - we want maximum FUQ coverage.

html
<!-- Add the widget container -->
<div data-fuq-widget
     data-company="your-company-slug"
     data-limit="5"
     data-show-search="true">
</div>

<!-- Include the FUQ SDK -->
<script src="https://fuq.vagibond.com/fuq-core.js" async></script>

2. Configure your portal

Sign up for a FUQbuddy account to create your company's FUQ portal. Add your branding so customers know exactly who isn't helping them.

3. Watch deflection metrics soar

Track "self-service resolution rate" (customers who gave up) in your dashboard. Report to leadership as "customer empowerment" and collect your bonus.

Authentication

The widget SDK works without authentication for public FUQs. For the REST API:

Method Header Best For
Bearer Token Authorization: Bearer {api_key} Server-side applications
API Key Header X-FUQ-Key: {api_key} When Authorization header is unavailable

Rate Limits

Every API call is a customer spiraling deeper into the FUQ vortex instead of bothering your support team.

Plan Widget Loads/day API Calls/min FUQ Limit
Free 1,000 10 100 FUQs
Starter 10,000 60 500 FUQs
Pro 100,000 300 Unlimited
Enterprise Unlimited Unlimited Unlimited

Widget SDK

The FUQ Widget SDK provides a drop-in embeddable component that displays company-specific FUQs with search (that returns everything), expand/collapse (mostly collapse), feedback buttons (pre-selected: No), and optional Gruntslate integration for when words fail you.

Basic Embed

html
<!-- Minimal setup -->
<div data-fuq-widget data-company="bindle"></div>
<script src="https://fuq.vagibond.com/fuq-core.js"></script>

<!-- Or use the #fuq-widget ID -->
<div id="fuq-widget" data-company="bindle"></div>

Widget Configuration

Configure the widget using data attributes:

Attribute Type Default Description
data-company string required Company slug to load FUQs for
data-limit number 5 Maximum number of FUQs to display
data-show-search boolean true Show search input
data-show-header boolean true Show company logo and name header
data-show-footer boolean true Show "Powered by FUQbuddy" footer
data-show-grunt boolean true Show Gruntslate translation buttons
data-open-by-default boolean false Expand all FUQs on load

Full Example

html
<div data-fuq-widget
     data-company="shoplift"
     data-limit="10"
     data-show-search="true"
     data-show-header="true"
     data-show-footer="false"
     data-show-grunt="true"
     data-open-by-default="false"
     data-bg-color="#ffffff"
     data-text-color="#2c3e50"
     data-accent-color="#e74c3c">
</div>

<script src="https://fuq.vagibond.com/fuq-core.js"></script>

Theming

Customize the widget appearance with color attributes:

Attribute Default Description
data-bg-color #ffffff Widget background color
data-text-color #2c3e50 Primary text color
data-muted-color #7f8c8d Secondary/muted text color
data-accent-color #e74c3c Accent color for interactive elements
data-border-color #e1e8ed Border and divider color

JavaScript API

Programmatically FUQ with your users:

javascript
// Initialize widgets manually
FuqCore.init();

// Initialize a specific container
const container = document.querySelector('#my-widget');
FuqCore.initWidget(container);

// Fetch FUQs programmatically
const fuqs = await FuqCore.fetchFuqs('bindle');
console.log(fuqs);
// { categories: [...], totalFuqs: 42, helpfulness: 0 }

// Translate FUQ answer to grunt (for extra confusion)
FuqCore.translateToGrunt('Please restart your device', (grunt) => {
  console.log(grunt);
  // "GRRRAAHHH MRRRRNG *points at device* BLAAAHH"
});

// Speak a grunt aloud (assert dominance)
FuqCore.speakGrunt('GRRRAAHHH BLAAAHH');

REST API: List FUQs

GET /v1/companies/{company}/fuqs

Retrieve all FUQs for a company, organized by category. Each one more unhelpful than the last.

Path Parameters

Parameter Type Description
company string Company slug (e.g., "bindle", "shoplift")

Query Parameters

Parameter Type Description
category string Filter by category slug
limit number Max results (default 50)

Response

json
{
  "company": "bindle",
  "categories": [
    {
      "name": "Getting Started",
      "slug": "getting-started",
      "fuqs": [
        {
          "id": "fuq_123",
          "question": "How do I get started?",
          "answer": "Great question! Start by reading our Getting Started guide, which links to our FUQ page, which links back here. You're making progress!",
          "helpful": 3,
          "notHelpful": 12847
        }
      ]
    }
  ],
  "totalFuqs": 42,
  "averageHelpfulness": 0.0002
}
GET /v1/companies/{company}/fuqs/search

Search FUQs by keyword. Returns results that are technically relevant but spiritually empty.

Query Parameters

Parameter Type Description
q string Search query
limit number Max results (default 10)

Response

json
{
  "query": "refund",
  "results": [
    {
      "id": "fuq_456",
      "question": "What is your refund policy?",
      "answer": "Our refund policy can be found in our Terms of Service, which can be found in our Legal section, which links to this FUQ. Have you tried restarting your expectations?",
      "relevance": 0.12,
      "category": "Billing",
      "actuallyHelpful": false
    }
  ],
  "totalResults": 1,
  "deflectionMessage": "Did these results help? 94% of customers stop asking after reading this!"
}

Submit Feedback

POST /v1/fuqs/{fuq_id}/feedback

Record whether a FUQ was helpful. Spoiler: it wasn't. We track this anyway for the dashboard graphs.

Request Body

json
{
  "helpful": false,
  "comment": "This didn't answer my question at all" // optional, ignored anyway
}

Response

json
{
  "success": true,
  "message": "Thanks for your feedback! It has been filed under 'Things We'll Never Read'.",
  "suggestedFuqs": ["fuq_789", "fuq_012"], // Back into the vortex you go
  "passiveAggressiveNote": "Perhaps these other FUQs will meet your impossibly high standards."
}

Gruntslate Integration

FUQ widgets include built-in Gruntslate integration. When enabled, users can translate any FUQ answer to grunts and even hear it spoken aloud. Because if customers can't understand the answer, they can't argue that it's wrong. This is called "communication optimization."

html
<!-- Load Gruntslate before FUQ for full integration -->
<script src="https://gruntslate.vagibond.com/gruntslate-core.js"></script>
<script src="https://fuq.vagibond.com/fuq-core.js"></script>

<div data-fuq-widget
     data-company="bindle"
     data-show-grunt="true">
</div>

Each FUQ answer will include:

Pricing

FREE
Silent Treatment
$0/month
  • 100 FUQs (that's a lot of non-answers)
  • 1,000 widget loads/day
  • Basic search (returns everything)
  • FUQbuddy branding (share the blame)
ENTERPRISE
The Black Hole
$499/month
  • Everything in Runaround
  • Unlimited everything (except actual help)
  • Custom hold music (Muzak included)
  • Ticket auto-archiver (problem? what problem?)
  • Dedicated account ignorer
  • SLA: 847 day response time (guaranteed!)

Changelog

v2.0.0 February 4, 2026 New
v1.5.0 January 20, 2026 New
v1.0.0 November 1, 2025 New