BizzareBot API Documentation

Build trust infrastructure with our RESTful API for Discord vouch systems.

Quick Start

Base URL

https://www.bizzare.xyz/api

Get Recent Vouches

Example Request
GET /api/vouches?limit=10&sortBy=timestamp&order=desc

curl -X GET "https://www.bizzare.xyz/api/vouches?limit=10" \
  -H "Content-Type: application/json"

Response Format

JSON Response
{
  "success": true,
  "data": {
    "vouches": [
      {
        "id": "vouch_1703123456_abc123",
        "from": "123456789012345678",
        "fromTag": "user1#1234",
        "to": "987654321098765432",
        "toTag": "user2#5678",
        "rating": 5,
        "reason": "Great service!",
        "timestamp": 1703123456789,
        "guildId": "111222333444555666",
        "guildName": "Test Server"
      }
    ],
    "pagination": {
      "total": 100,
      "limit": 10,
      "offset": 0,
      "hasMore": true
    }
  }
}

API Endpoints

Vouches

GET/api/vouches

Get all vouches with optional filtering and pagination

Query Parameters:

userId (optional) - Filter by user ID
type (optional) - 'received', 'given', 'all'
limit (optional) - Results per page (max: 100)
offset (optional) - Skip results
sortBy (optional) - 'timestamp', 'rating'
order (optional) - 'asc', 'desc'
GET/api/vouches/{id}

Get a specific vouch by ID

Users

GET/api/users/{userId}/stats

Get user statistics including average rating and vouch counts

GET/api/users/{userId}/vouches

Get vouches for a specific user

Query Parameters:

type (optional) - 'received', 'given', 'all'
limit (optional) - Number of results
offset (optional) - Results offset

Statistics

GET/api/stats

Get global statistics including total vouches, users, and trends

Scammer Database

GET/api/scammers

Get reported scammers with advanced filtering options

Query Parameters:

search (optional) - Search in userTag, reason, or markedByTag
markedBy (optional) - Filter by user ID who marked them
location (optional) - Filter by guild/server name
reason (optional) - Filter by reason text
fromDate (optional) - Date range start (ISO format)
toDate (optional) - Date range end (ISO format)
sortBy (optional) - 'timestamp', 'userTag', 'markedByTag', 'reason', 'guildName'
order (optional) - 'asc', 'desc' (default: 'desc')
limit (optional) - Results per page (max: 100)
offset (optional) - Skip results

⚠️ Security Note: Always verify scammer reports independently. This data is community-maintained and should be used as a reference only.

Code Examples

JavaScript/Node.js

Fetch User Stats
// Get user statistics
const getUserStats = async (userId) => {
  try {
    const response = await fetch(`/api/users/${userId}/stats`);
    const data = await response.json();
    
    if (data.success) {
      console.log('User stats:', data.data);
      return data.data;
    } else {
      console.error('Error:', data.error);
    }
  } catch (error) {
    console.error('Network error:', error);
  }
};

// Usage
const stats = await getUserStats('123456789012345678');

Python

Get Recent Vouches
import requests
import json

def get_recent_vouches(limit=10):
    """Get recent vouches from the API"""
    url = f"https://www.bizzare.xyz/api/vouches"
    params = {
        'limit': limit,
        'sortBy': 'timestamp',
        'order': 'desc'
    }
    
    try:
        response = requests.get(url, params=params)
        response.raise_for_status()
        
        data = response.json()
        if data['success']:
            return data['data']['vouches']
        else:
            print(f"API Error: {data.get('error', 'Unknown error')}")
            return None
            
    except requests.exceptions.RequestException as e:
        print(f"Request failed: {e}")
        return None

# Usage
vouches = get_recent_vouches(limit=20)
if vouches:
    for vouch in vouches:
        print(f"Rating: {vouch['rating']}/5 - {vouch['reason']}")

Scammer Database

Search Scammers
// Search for scammers by username or reason
const searchScammers = async (query) => {
    const response = await fetch(`https://www.bizzare.xyz/api/scammers?search=${encodeURIComponent(query)}&limit=10`);
    const data = await response.json();
    
    if (data.success) {
        return data.data; // Array of scammer objects
    }
    return [];
};

// Get scammers from a specific server
const getServerScammers = async (serverName) => {
    const response = await fetch(`https://www.bizzare.xyz/api/scammers?location=${encodeURIComponent(serverName)}`);
    const data = await response.json();
    
    if (data.success) {
        data.data.forEach(scammer => {
            console.log(`⚠️  ${scammer.userTag}: ${scammer.reason}`);
        });
    }
};

// Usage
const scammers = await searchScammers('exit scam');
console.log(`Found ${scammers.length} reported scammers`);

Error Codes

400Bad Request

Missing required parameters or invalid request format

404Not Found

Resource doesn't exist (user, vouch, etc.)

500Internal Server Error

Server-side error, please try again later

200Success

Request completed successfully

Rate Limiting

Currently, no rate limiting is implemented. In production environments, consider implementing rate limits to prevent abuse.

Recommended limits: 100 requests per minute per IP address for public endpoints.

Support & Resources

Need Help?

If you have questions or need assistance with the API, we're here to help.

Contact Support

Community

Join our Discord community to connect with other developers and get real-time help.

Join Discord