EdgeChat · Schema

SearchResponse

CompanyDecentralizedOffline-FirstAI-PoweredMessaging

Properties

Name Type Description
query string
did_you_mean string
topics array On page 1, when the words name a topic ('science fiction writers'): that topic. Its articles are at its `api_url`; a title search finds few of them.
total integer
page integer
pages integer
results array Title, alias, and misspelling matches first; when no title shares a word with the query, articles whose text matches follow (match: fulltext), counted in total and pages and never repeated across page
license object
match object
searched_as string The transliterated query that ran, when the query as typed found nothing.
scope string
facets object
View JSON Schema on GitHub

JSON Schema

edgechat-ai-search-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/edgechat-ai/json-schema/edgechat-ai-search-response-schema.json",
  "title": "SearchResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/edgechat-ai-search-api-openapi.yml#/components/schemas/SearchResponse",
  "allOf": [
    {
      "type": "object",
      "properties": {
        "query": {
          "type": "string"
        },
        "did_you_mean": {
          "type": "string"
        },
        "topics": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Topic"
          },
          "description": "On page 1, when the words name a topic ('science fiction writers'): that topic. Its articles are at its `api_url`; a title search finds few of them."
        },
        "total": {
          "type": "integer"
        },
        "page": {
          "type": "integer"
        },
        "pages": {
          "type": "integer"
        },
        "results": {
          "type": "array",
          "description": "Title, alias, and misspelling matches first; when no title shares a word with the query, articles whose text matches follow (match: fulltext), counted in total and pages and never repeated across pages.",
          "items": {
            "allOf": [
              {
                "$ref": "#/$defs/ArticleSummary"
              },
              {
                "$ref": "#/$defs/SearchResultAdditions"
              },
              {
                "$ref": "#/$defs/DerivedFields"
              }
            ]
          }
        },
        "license": {
          "$ref": "#/$defs/License"
        }
      }
    },
    {
      "$ref": "#/$defs/SearchAnswerAdditions"
    }
  ],
  "$defs": {
    "ArticleSummary": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "topic": {
          "type": [
            "string",
            "null"
          ],
          "description": "The top-level branch of the topic tree the article is under. Its own topic is the last entry of the article's `topic_path`."
        },
        "excerpt": {
          "type": "string",
          "description": "The corpus snippet when available, otherwise the article opening as plain text. Older listing excerpts may end in an ellipsis (…)."
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "markdown_url": {
          "type": "string",
          "format": "uri"
        },
        "api_url": {
          "type": "string",
          "format": "uri"
        },
        "snippet": {
          "type": "string",
          "description": "Optional corpus-authored summary, separate from the article opening. Present on corpus-v1.5 articles and their preview results."
        },
        "node": {
          "type": "string",
          "description": "Current concept-tree node of the article, when available. May change when the corpus tree is revised."
        }
      },
      "required": [
        "id",
        "slug",
        "title",
        "excerpt",
        "url",
        "markdown_url",
        "api_url"
      ]
    },
    "DerivedFields": {
      "type": "object",
      "description": "On search results and articles (api/_derived.js through the fetch and search options).",
      "properties": {
        "importance": {
          "type": "number",
          "description": "0 to 1; PageRank over the in-text links, as a percentile. A link count, not a judgment."
        },
        "rank": {
          "type": "integer",
          "description": "1 = most central"
        },
        "words": {
          "type": "integer"
        },
        "reading_grade": {
          "type": "number",
          "description": "Flesch-Kincaid grade"
        },
        "reading_minutes": {
          "type": "integer"
        },
        "match": {
          "type": "string",
          "enum": [
            "fulltext"
          ],
          "description": "On a result found in the articles' text (BM25) because no title or alias matched."
        }
      }
    },
    "License": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "summary": {
          "type": "string"
        },
        "spdx": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "url"
      ]
    },
    "Match": {
      "type": "string",
      "enum": [
        "exact",
        "alias",
        "misspelling",
        "partial",
        "none",
        "fulltext"
      ]
    },
    "SearchAnswerAdditions": {
      "type": "object",
      "properties": {
        "match": {
          "$ref": "#/$defs/Match"
        },
        "searched_as": {
          "type": "string",
          "description": "The transliterated query that ran, when the query as typed found nothing."
        },
        "scope": {
          "type": "string"
        },
        "facets": {
          "type": "object",
          "properties": {
            "topic": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "count": {
                    "type": "integer"
                  },
                  "api_url": {
                    "type": "string"
                  }
                }
              }
            },
            "geo": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "count": {
                    "type": "integer"
                  },
                  "api_url": {
                    "type": "string"
                  }
                }
              }
            },
            "counted": {
              "type": "object",
              "properties": {
                "topic": {
                  "type": "integer"
                },
                "geo": {
                  "type": "integer"
                }
              }
            }
          }
        }
      }
    },
    "SearchResultAdditions": {
      "type": "object",
      "properties": {
        "match": {
          "$ref": "#/$defs/Match"
        },
        "confidence": {
          "type": "number",
          "minimum": 0,
          "maximum": 1,
          "description": "A fixed rule, not a calibrated probability (see /developers)."
        },
        "highlight": {
          "type": "string",
          "description": "The sentence of the summary or opening holding the most query words."
        }
      }
    },
    "Topic": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "articles": {
          "type": "integer"
        },
        "api_url": {
          "type": "string",
          "format": "uri"
        }
      },
      "required": [
        "id",
        "label",
        "api_url"
      ]
    }
  }
}

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/edgechat-ai-search-response"
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.