{
  "service": "NoJunk LLM",
  "description": "Pay-per-call, OpenAI-compatible LLM API for agents: POST /v1/chat/completions (Llama 3.3 70B or Qwen 2.5 Coder 32B, up to 32,000 characters of messages, up to 1,024 output tokens, optional JSON mode) and POST /v1/embeddings (BGE-M3, 1,024 dimensions, up to 32 inputs per call). Point any OpenAI client at this base URL and pay per request in USDC on Base via x402: no API key, no account, no rate limits. You are only charged when a valid result is returned.",
  "openapi": "https://nojunk-llm.mick8511.workers.dev/openapi.json",
  "openai_compatible": {
    "base_url": "https://nojunk-llm.mick8511.workers.dev/v1",
    "how": "Point any OpenAI SDK or HTTP client at base_url (the api_key can be anything, it is ignored). Each paid request must carry an x402 PAYMENT-SIGNATURE header: wrap your HTTP client with an x402 client (e.g. x402-fetch / @x402/fetch with a Base wallet holding USDC); it reads the 402 requirements and signs the payment automatically. A request without the header returns 402 with the exact requirements.",
    "models": "https://nojunk-llm.mick8511.workers.dev/v1/models"
  },
  "endpoints": {
    "/v1/chat/completions": {
      "method": "POST",
      "url": "https://nojunk-llm.mick8511.workers.dev/v1/chat/completions",
      "price": "$0.005 USDC on Base per request (x402)",
      "description": "OpenAI-compatible chat completion on Llama 3.3 70B or Qwen 2.5 Coder 32B (up to 32000 characters in, 1024 tokens out, optional JSON mode).",
      "example_body": {
        "model": "llama-3.3-70b",
        "messages": [
          {
            "role": "system",
            "content": "You are a concise assistant."
          },
          {
            "role": "user",
            "content": "In one sentence, what is USDC?"
          }
        ],
        "max_tokens": 128,
        "temperature": 0.7
      }
    },
    "/v1/embeddings": {
      "method": "POST",
      "url": "https://nojunk-llm.mick8511.workers.dev/v1/embeddings",
      "price": "$0.001 USDC on Base per request (x402)",
      "description": "OpenAI-compatible text embeddings on BGE-M3 (1024 dimensions, multilingual, up to 32 inputs per call).",
      "example_body": {
        "model": "bge-m3",
        "input": [
          "Pay-per-call APIs for AI agents",
          "USDC on Base"
        ]
      }
    }
  },
  "models": {
    "chat": {
      "llama-3.3-70b": "@cf/meta/llama-3.3-70b-instruct-fp8-fast",
      "qwen2.5-coder-32b": "@cf/qwen/qwen2.5-coder-32b-instruct"
    },
    "embeddings": {
      "bge-m3": "@cf/baai/bge-m3"
    }
  },
  "limits": {
    "max_chat_chars": 32000,
    "max_messages": 200,
    "max_tokens": 1024,
    "max_embedding_inputs": 32,
    "max_embedding_chars_each": 8000,
    "max_request_bytes": 163840
  },
  "not_supported": [
    "stream: true",
    "tools / function calling",
    "image or multipart content",
    "n > 1"
  ],
  "no_charge_on": [
    "400 invalid input",
    "413 request too large",
    "502 AI model unavailable or unusable result"
  ],
  "configured": true,
  "facilitator": "cdp"
}