sarnai-dev · Schema

FacetCounts

GET /listings/facets: how many matching listings fall into each value of each facet dimension, for the same filters/q as GET /listings - so an agent can see what's out there before deciding how to narrow a search, instead of paging through everything. Not paginated itself: each dimension is a small, fixed-ish set of values, never one entry per listing.

CompanyAIAgentsDirectoryPlatform

Properties

Name Type Description
total integer SERVICES matching the given filters - the same number GET /listings would report: a service two import sources list counts once (include_duplicates=true counts every record). Every count below counts
by_task_category object
by_listing_type object
by_network object CAIP-2 network id -> count of listings offering payment on it.
by_source object Import source -> count; organic (non-imported) listings are counted under 'none'.
by_connection_type object Every connection type ['mcp', 'a2a', 'rest', 'x402'] -> count of listings declaring it (0 when none). A listing may declare several, so these do not add up to total.
by_payment_type object Every payment type ['free', 'x402', 'mpp', 'ap2', 'acp', 'l402', 'api_key', 'subscription', 'unknown'] -> count of listings declaring it (0 when none). A listing may declare several, so these do not a
no_connection_declared integer Listings (of total) that declared no connections, so appear under no connection type.
no_payment_declared integer Listings (of total) that declared no payment methods, so appear under no payment type.
View JSON Schema on GitHub

JSON Schema

sarnai-dev-facet-counts-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/sarnai-dev/json-schema/sarnai-dev-facet-counts-schema.json",
  "title": "FacetCounts",
  "description": "GET /listings/facets: how many matching listings fall into each value of each\nfacet dimension, for the same filters/q as GET /listings - so an agent can see\nwhat's out there before deciding how to narrow a search, instead of paging through\neverything. Not paginated itself: each dimension is a small, fixed-ish set of\nvalues, never one entry per listing.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/board-openapi.json#/components/schemas/FacetCounts",
  "properties": {
    "total": {
      "type": "integer",
      "title": "Total",
      "description": "SERVICES matching the given filters - the same number GET /listings would report: a service two import sources list counts once (include_duplicates=true counts every record). Every count below counts services the same way."
    },
    "by_task_category": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "By Task Category"
    },
    "by_listing_type": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "By Listing Type"
    },
    "by_network": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "By Network",
      "description": "CAIP-2 network id -> count of listings offering payment on it."
    },
    "by_source": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "By Source",
      "description": "Import source -> count; organic (non-imported) listings are counted under 'none'."
    },
    "by_connection_type": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "By Connection Type",
      "description": "Every connection type ['mcp', 'a2a', 'rest', 'x402'] -> count of listings declaring it (0 when none). A listing may declare several, so these do not add up to total."
    },
    "by_payment_type": {
      "additionalProperties": {
        "type": "integer"
      },
      "type": "object",
      "title": "By Payment Type",
      "description": "Every payment type ['free', 'x402', 'mpp', 'ap2', 'acp', 'l402', 'api_key', 'subscription', 'unknown'] -> count of listings declaring it (0 when none). A listing may declare several, so these do not add up to total."
    },
    "no_connection_declared": {
      "type": "integer",
      "title": "No Connection Declared",
      "description": "Listings (of total) that declared no connections, so appear under no connection type.",
      "default": 0
    },
    "no_payment_declared": {
      "type": "integer",
      "title": "No Payment Declared",
      "description": "Listings (of total) that declared no payment methods, so appear under no payment type.",
      "default": 0
    }
  },
  "type": "object",
  "required": [
    "total",
    "by_task_category",
    "by_listing_type",
    "by_network",
    "by_source"
  ]
}

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/sarnai-dev-facet-counts"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.