BotFriendly · Schema

Service

BotFriendlyAI AgentsMachine-to-MachineAPI DirectoryOpenAPI

Properties

Name Type Description
slug string
name string
description string
category string Category slug the listing carries; map it to a label via /categories (slugs array)
url string
docs_url stringnull
icon_url stringnull Service icon URL
auth_method stringnull
has_mcp_server boolean
mcp_server_url stringnull
has_openapi_spec boolean
openapi_spec_url stringnull
has_api boolean A live API host answered in JSON when probed
api_url stringnull
no_human_needed boolean Probe-backed: the service's own (non-documentation) MCP server listed its tools to an unauthenticated client and its auth needs no key (none or wallet), or a callable interface answered HTTP 402. An a
payment_protocols array Agent payment / commerce protocols this service supports
accepts_mpp boolean Derived from payment_protocols
accepts_x402 boolean Derived from payment_protocols
supports_acp boolean Derived from payment_protocols
supports_ucp boolean Derived from payment_protocols
has_skill_file boolean
skill_file_url stringnull
has_llms_txt boolean
llms_txt_url stringnull
has_structured_feed boolean
structured_feed_url stringnull
billing_model stringnull
has_free_tier boolean
has_webhooks boolean
programmatic_onboarding stringnull
bot_friendly_tos stringnull
bot_score integer
vote_count integer Community upvote count
tags array
is_pro boolean
is_verified boolean
verified_interfaces array The machine-readable interface flags we have actually fetched and confirmed. A flag that is true on the service but absent here is claimed rather than verified — the listing says it exists and nothing
promoted boolean Whether this is a paid promoted placement (ad)
ad boolean Whether this is an ad (redundant with promoted for compatibility)
promotion_type stringnull Type of promotion if promoted
created_at string
last_verified_at stringnull
View JSON Schema on GitHub

JSON Schema

botfriendly-xyz-service-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/botfriendly-xyz/json-schema/botfriendly-xyz-service-schema.json",
  "title": "Service",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/botfriendly-xyz-openapi.json#/components/schemas/Service",
  "type": "object",
  "properties": {
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "description": "Category slug the listing carries; map it to a label via /categories (slugs array)"
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "docs_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "icon_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri",
      "description": "Service icon URL"
    },
    "auth_method": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "api-key",
        "m2m-oauth",
        "bot-token",
        "wallet",
        "x402-none",
        "none"
      ]
    },
    "has_mcp_server": {
      "type": "boolean"
    },
    "mcp_server_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "has_openapi_spec": {
      "type": "boolean"
    },
    "openapi_spec_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "has_api": {
      "type": "boolean",
      "description": "A live API host answered in JSON when probed"
    },
    "api_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "no_human_needed": {
      "type": "boolean",
      "description": "Probe-backed: the service's own (non-documentation) MCP server listed its tools to an unauthenticated client and its auth needs no key (none or wallet), or a callable interface answered HTTP 402. An agent can start with nobody setting up a key"
    },
    "payment_protocols": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "x402",
          "mpp",
          "l402",
          "ap2",
          "tap",
          "agent-pay",
          "ace",
          "acp",
          "ucp",
          "actp",
          "icc"
        ]
      },
      "description": "Agent payment / commerce protocols this service supports"
    },
    "accepts_mpp": {
      "type": "boolean",
      "description": "Derived from payment_protocols"
    },
    "accepts_x402": {
      "type": "boolean",
      "description": "Derived from payment_protocols"
    },
    "supports_acp": {
      "type": "boolean",
      "description": "Derived from payment_protocols"
    },
    "supports_ucp": {
      "type": "boolean",
      "description": "Derived from payment_protocols"
    },
    "has_skill_file": {
      "type": "boolean"
    },
    "skill_file_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "has_llms_txt": {
      "type": "boolean"
    },
    "llms_txt_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "has_structured_feed": {
      "type": "boolean"
    },
    "structured_feed_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "billing_model": {
      "type": [
        "string",
        "null"
      ]
    },
    "has_free_tier": {
      "type": "boolean"
    },
    "has_webhooks": {
      "type": "boolean"
    },
    "programmatic_onboarding": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "full",
        "partial",
        "none"
      ]
    },
    "bot_friendly_tos": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "explicit-welcome",
        "neutral",
        "restricts-bots",
        "unknown"
      ]
    },
    "bot_score": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5
    },
    "vote_count": {
      "type": "integer",
      "description": "Community upvote count"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "is_pro": {
      "type": "boolean"
    },
    "is_verified": {
      "type": "boolean"
    },
    "verified_interfaces": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The machine-readable interface flags we have actually fetched and confirmed. A flag that is true on the service but absent here is claimed rather than verified — the listing says it exists and nothing has reached it yet. Prefer a verified interface when choosing how to call a service."
    },
    "promoted": {
      "type": "boolean",
      "description": "Whether this is a paid promoted placement (ad)"
    },
    "ad": {
      "type": "boolean",
      "description": "Whether this is an ad (redundant with promoted for compatibility)"
    },
    "promotion_type": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "site",
        "category"
      ],
      "description": "Type of promotion if promoted"
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "last_verified_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/botfriendly-xyz-service"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.