Spite Projects

API Documentation

A RESTful JSON API for accessing spite projects, spite scores, builder data, and platform stats. Built with spite, designed for developers who appreciate simplicity over unnecessary complexity. No API keys required (for now). No tracking. No BS.

Rate Limits

Free tier: 100 requests/minute per IP address

Response headers:

Exceeded the limit? Slow down or host your own instance. The code is open source.

Projects

GET /api/v1/projects

List all spite projects with optional filtering and pagination.

Query Parameters

label (string, optional)

Filter by label (e.g., "vibe-coding", "meta")

limit (integer, optional)

Number of results per page

offset (integer, optional)

Pagination offset (default: 0)

EXAMPLE REQUEST

curl https://spiteprojects.com/api/v1/projects?label=vibe-coding&limit=10

Response Schema

{
  "data": [
    {
      "name": "Project Name",
      "author": "username",
      "description": "Description of the spite",
      "repo": "https://github.com/...",
      "web": "https://...",
      "labels": ["label1", "label2"],
      "badges": ["badge-id"],
      "spite_score": 7.5,
      "spite_roast": "Snarky AI roast"
    }
  ],
  "meta": {
    "total": 42,
    "limit": 10,
    "offset": 0,
    "count": 10
  }
}
GET /api/v1/projects/:name

Get a specific project by name (URL-encoded).

EXAMPLE REQUEST

curl https://spiteprojects.com/api/v1/projects/spiteprojects.com

Response Schema

{
  "data": {
    "name": "spiteprojects.com",
    "author": "asah",
    "description": "...",
    ...
  }
}
GET /api/v1/projects/:name/spite-score

Get the Spite Score and roast for a project.

EXAMPLE REQUEST

curl https://spiteprojects.com/api/v1/projects/spiteprojects.com/spite-score

Response Schema

{
  "data": {
    "name": "spiteprojects.com",
    "spite_score": 7.5,
    "spite_roast": "AI-generated roast",
    "badges": ["vibe-coded", "meta"]
  }
}
GET /api/v1/projects/:name/pricing

Get satirical enterprise pricing tiers for a project. Because every spite project deserves a laughably overpriced enterprise plan.

EXAMPLE REQUEST

curl https://spiteprojects.com/api/v1/projects/spiteprojects.com/pricing

Response Schema

{
  "data": {
    "projectName": "spiteprojects.com",
    "tiers": [
      {
        "name": "Startup",
        "price": "$0/year",
        "description": "Just use the free version",
        "features": [...]
      },
      ...
    ],
    "disclaimer": "Your spite project: $0 - Available right now - Zero meetings required"
  }
}

Builders

GET /api/v1/builders

List all spite builders with optional pagination.

Query Parameters

limit (integer, optional)

Number of results per page

offset (integer, optional)

Pagination offset (default: 0)

EXAMPLE REQUEST

curl https://spiteprojects.com/api/v1/builders

Response Schema

{
  "data": [
    {
      "name": "Builder Name",
      "github": "username",
      "bio": "Short bio",
      "projects": ["Project 1", "Project 2"],
      ...
    }
  ],
  "meta": {
    "total": 15,
    "limit": 15,
    "offset": 0,
    "count": 15
  }
}

Platform Stats

GET /api/v1/stats

Get platform-wide statistics including total projects, builders, spite scores, and popular badges/labels.

EXAMPLE REQUEST

curl https://spiteprojects.com/api/v1/stats

Response Schema

{
  "data": {
    "projects": {
      "total": 42,
      "with_spite_scores": 38
    },
    "builders": {
      "total": 15
    },
    "spite_scores": {
      "total": 285.5,
      "average": 7.5,
      "highest": 9.2
    },
    "badges": {
      "vibe-coded": 12,
      "speed-run": 8,
      ...
    },
    "labels": {
      "vibe-coding": 15,
      "anti-saas": 10,
      ...
    }
  }
}
GET /api/v1/random

Get a random spite project for inspiration. Perfect for when you need a dose of spite energy.

EXAMPLE REQUEST

curl https://spiteprojects.com/api/v1/random

Response Schema

{
  "data": {
    "name": "Random Spite Project",
    "author": "username",
    ...
  }
}

🤖 MCP Integration (Model Context Protocol)

Use Spite Projects directly in Claude Desktop or other MCP-compatible AI assistants. Get spite project recommendations, search projects, and access spite scores from your AI.

Installation

Add to your Claude Desktop config at ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "spiteprojects": {
      "command": "node",
      "args": ["/path/to/spiteprojects-dot-com/mcp/spiteprojects-mcp.js"]
    }
  }
}

Available MCP Tools

TOOL list_spite_projects

Returns all spite projects with optional label filtering.

TOOL get_spite_score

Get a project's spite score and roast by name.

TOOL get_random_project

Get a random spite project for inspiration.

TOOL search_projects

Search projects by name or description.

See the MCP directory for full setup instructions and source code.

Error Handling

All endpoints return appropriate HTTP status codes and JSON error responses.

Common Error Responses

// 404 Not Found
{
  "error": "Project not found",
  "message": "No spite project found with name: XYZ"
}

// 429 Rate Limit Exceeded
{
  "error": "Rate limit exceeded",
  "message": "Too many requests. Slow down there, champ. Free tier is 100 req/min.",
  "limit": 100,
  "remaining": 0,
  "reset": "2026-02-20T12:34:56.789Z"
}

Notes