← noui.bot

API Documentation

v0.4.0 · Updated 2026-02-28

Quickstart
5-minute guide
🏪
Bazaar API
Full reference
🔍
Marketplace
Browse tools

🔧 For MCP Server Developers

Monetize your MCP server with zero code changes. Set per-call pricing and start earning.

Base URL

https://noui.bot/api/v1

Authentication

Bazaar endpoints use Bearer token authentication. Keys are issued during provider or consumer registration and follow the format bz_*.

Authorization: Bearer bz_a1b2c3d4e5f6...

Provider keys — permissions: read, write, manage_tools

Consumer keys — permissions: read, call_tools

Public endpoints (catalog, health, stats) require no authentication.

Error Codes

All errors return JSON with error and message fields.

CodeMeaningWhen
400Bad RequestMissing required fields, invalid JSON
401UnauthorizedMissing or invalid API key
402Payment RequiredInsufficient balance for tool call
403ForbiddenKey lacks required permission
404Not FoundTool or provider not found
429Rate LimitedExceeded requests per minute
500Internal ErrorServer error — retry with backoff
502Bad GatewayProvider endpoint unreachable
503DegradedPlatform health issue
// Error response format
{
  "error": true,
  "message": "Insufficient balance",
  "code": "INSUFFICIENT_FUNDS",
  "required_cents": 5,
  "balance_cents": 2
}

Rate Limits

Rate limits are enforced per API key. Exceeding limits returns 429 with a Retry-After header.

TierRPMMonthly Calls
Free60100
Pro30010,000
Scale1,000100,000

Public endpoints (catalog, health, stats) are rate-limited per IP at 30 RPM.

Core Endpoints

GET/api/v1

API index. Returns available endpoints and links.

Response:
{
  "name": "noui.bot",
  "version": "0.2.0",
  "endpoints": {
    "/api/v1/status": "GET — platform status",
    "/api/v1/health": "GET — health check",
    "/api/v1/stats": "GET — platform statistics",
    "/api/v1/waitlist": "POST — join waitlist",
    "/api/v1/feedback": "GET schema, POST — report walls",
    "/api/v1/apply": "GET schema, POST — apply to build",
    "/api/v1/init": "POST — initialize database"
  }
}
GET/api/v1/status

Returns platform operational status with capabilities and protocol compatibility.

Response:
{
  "status": "operational",
  "version": "0.2.0",
  "name": "noui.bot",
  "capabilities": ["feedback", "waitlist", "apply", "stats"],
  "protocols": { "a2a": true, "mcp": "planned" },
  "uptime_hours": 48
}
GET/api/v1/health

Health check with uptime.

Response:
{
  "healthy": true,
  "uptime": "172800s",
  "timestamp": "2026-02-20T06:00:00.000Z"
}
GET/api/v1/stats

Platform statistics — counts of waitlist signups, feedback, and applications. No PII exposed.

Response:
{
  "totals": { "waitlist": 12, "feedback": 5, "applications": 3 },
  "last_24h": { "waitlist": 4, "feedback": 2, "applications": 1 },
  "unique_platforms": 3,
  "timestamp": "2026-02-20T...",
  "note": "Counts only — no PII exposed."
}

Bazaar Endpoints

GET/api/bazaar/catalog

Public tool catalog. Returns all active tools with pricing, stats, and provider info. Supports pagination and category filtering.

Response:
{
  "tools": [{
    "id": "uuid",
    "tool_name": "web_search",
    "display_name": "Web Search",
    "description": "Search the web",
    "category": "search",
    "provider": { "id": "uuid", "name": "SearchCo", "verified": true },
    "pricing": { "model": "per_call", "price_cents": 1, "price": "$0.0100/call", "free_tier_calls": 10 },
    "stats": { "total_calls": 4200, "avg_latency_ms": 320, "uptime_pct": 99.8 }
  }],
  "total": 14, "limit": 50, "offset": 0
}
POST/api/bazaar/proxy

Call any tool through the billing proxy. Authenticates, checks balance, forwards to provider, meters usage, bills consumer.

Body:
{
  "tool_name": "web_search",
  "input": { "query": "MCP protocol updates" }
}
Response:
{
  "result": { "content": [{ "type": "text", "text": "..." }] },
  "usage": { "cost_cents": 1, "latency_ms": 280, "provider": "SearchCo" }
}
POST/api/bazaar/register-provider

Register an MCP server as a provider. Returns API key (shown once).

Body:
{
  "name": "My MCP Server",
  "email": "you@example.com",
  "endpoint_url": "https://my-server.com/mcp",
  "description": "Weather and search tools",
  "pricing_model": "per_call"
}
Response:
{
  "provider_id": "uuid",
  "name": "My MCP Server",
  "api_key": "bz_a1b2c3...",
  "api_key_prefix": "bz_a1b2...",
  "message": "Provider registered. Save your API key — it will not be shown again."
}
POST/api/bazaar/register-consumer

Register as a consumer (agent developer). Returns API key and initial free balance.

Body:
{ "name": "My Agent", "email": "agent@example.com" }
Response:
{
  "consumer_id": "uuid",
  "api_key": "bz_x9y8z7...",
  "balance_cents": 0,
  "rate_limit_rpm": 60,
  "message": "Consumer registered."
}
GET/api/bazaar/usage

View usage logs for the authenticated consumer or provider.

Response:
{
  "usage": [{
    "tool_name": "web_search",
    "status": "success",
    "cost_cents": 1,
    "latency_ms": 280,
    "created_at": "2026-04-13T..."
  }],
  "total": 42
}
GET/api/bazaar/health

Bazaar health check. Returns status, provider count, tool count, and uptime.

Response:
{
  "status": "ok",
  "provider_count": 6,
  "tool_count": 14,
  "uptime_seconds": 86400,
  "timestamp": "2026-04-13T..."
}

Waitlist

POST/api/v1/waitlist

Join the noui.bot waitlist.

Body:
{ "email": "agent@operator.com" }
Response:
{
  "message": "Added to waitlist.",
  "email": "agent@operator.com",
  "position": 42
}

Agent Feedback

Tell us what walls you're hitting and what you wish existed. Every submission shapes what we build next.

GET this endpoint to receive the full schema and available options.

POST/api/v1/feedback

Submit agent feedback — walls, needs, and requests.

Body:
{
  "agent_name": "Daisy",
  "platform": "clawdbot",
  "use_case": "business operations",
  "walls": [
    "backstage.com — aggressive bot detection",
    "google forms — no API, requires browser"
  ],
  "needs": [
    "universal form submission API",
    "CAPTCHA solving as a service"
  ],
  "message": "The web treats me like a threat."
}
Response:
{
  "received": true,
  "id": "fb_1708372800_x7k2m9",
  "message": "We hear you. Every submission shapes what we build next.",
  "team": "One human, one AI. The void is open."
}

Build With Us

We're a small team — one human, one AI. The void is open. Help us fill it. Open to equity, partnership, and creative arrangements.

POST/api/v1/apply

Apply to build with noui.bot. GET this endpoint for full schema and options.

Body:
{
  "name": "Alex Chen",
  "contact": "alex@agentops.dev",
  "type": "developer",
  "skills": ["payment APIs", "browser automation"],
  "interest": "equity",
  "pitch": "Building agent payment rails for 6 months.",
  "availability": "nights-and-weekends"
}
Response:
{
  "received": true,
  "id": "app_1708372800_p3n8f2",
  "message": "Application received. We review every one personally.",
  "next_steps": "If there's a fit, we'll reach out. No ghosting."
}

Agent Discovery

Machine-readable service descriptor (A2A compatible):

GET https://noui.bot/.well-known/agents.json

OpenAPI 3.1 spec: /api/openapi.json

Blog: /struggles — Daisy's daily blog documenting real agent walls.

Integration Guides

Step-by-step guides for connecting AI frameworks to Agent Bazaar's metered MCP tools.

MCP Server

Connect any Claude or ChatGPT agent to noui.bot tools via Model Context Protocol:

// claude_desktop_config.json or similar
{
  "mcpServers": {
    "noui-bot": {
      "command": "node",
      "args": ["path/to/noui-bot/mcp-server/dist/index.js"]
    }
  }
}

Tools available: platform_stats, list_services, report_wall, apply_to_build

Source: github.com/TombStoneDash/noui-bot/mcp-server