ToolAssay

OpenAI-compatible vision (image understanding) from a private, self-hosted local

OpenAI-compatible vision (image understanding) from a private, self-hosted local vision-language model. Pay per call in USDC on Base via x402 - no API key or account. Send a public image URL plus a prompt (or OpenAI image_url messages); receive a standard chat.completion JSON answering about the image. Up to 4 images per call (more are clamped). Same privacy-first operator as our Private LLM Inference chat tiers.

Not tested: has real-world effectsour last check, 2026-10-04
0 of 0checks answered this week
n/amedian answer time
$0.02listed price per call
n/aprice it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://api.erb-llm.com/v1/vision

CategoryImage and media
Provider hostapi.erb-llm.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

We never call tools that send, buy, move money or file anything, not even without paying.

Example input (from the provider)

{
  "body": {
    "image": "https://example.com/photo.jpg",
    "model": "qwen/qwen3.8-27b",
    "prompt": "What is in this image?"
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "properties": {
            "image": {
              "description": "A public https:// image URL (simple form). Use `image`+`prompt`, or the full OpenAI `messages` array with image_url parts.",
              "type": "string"
            },
            "max_tokens": {
              "description": "Optional output cap. Default: the full 2,048-token vision cap.",
              "type": "integer"
            },
            "messages": {
              "description": "OpenAI chat messages using image_url content parts (full form). Up to 4 images per call; more are clamped to the first 4.",
              "items": {
                "type": "object"
              },
              "type": "array"
            },
            "model": {
              "description": "Optional. Default: the gateway's local vision-language model.",
              "type": "string"
            },
            "prompt": {
              "description": "What to do with the image (used with `image`). Default: 'Describe this image.'",
              "type": "string"
            }
          },
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "properties": {
            "choices": {
              "items": {
                "properties": {
                  "finish_reason": {
                    "type": "string"
                  },
                  "index": {
                    "type": "integer"
                  },
                  "message": {
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "role": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "type": "array"
            },
            "id": {
              "type": "string"
            },
            "model": {
              "type": "string"
            },
            "object": {
              "const": "chat.completion"
            },
            "usage": {
              "properties": {
                "completion_tokens": {
                  "type": "integer"
                },
                "prompt_tokens": {
                  "type": "integer"
                },
                "total_tokens": {
                  "type": "integer"
                }
              },
              "type": "object"
            },
            "x402": {
              "description": "Billing stamp added by the gateway.",
              "properties": {
                "capped_from": {
                  "type": "integer"
                },
                "charged": {
                  "type": "string"
                },
                "inference_ms": {
                  "type": "integer"
                },
                "note": {
                  "type": "string"
                },
                "output_cap": {
                  "type": "integer"
                },
                "tier": {
                  "type": "string"
                },
                "tokens_out": {
                  "type": "integer"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON