EdgeChat Search API
The Search API from EdgeChat — 1 operation(s) for search.
The Search API from EdgeChat — 1 operation(s) for search.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/edgechat-ai:edgechat-ai-search-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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.
openapi: 3.2.0
info:
title: Edgepedia Search API
version: '1'
description: Read-only JSON access to the Edgepedia encyclopedia articles. Keyless. 600 requests a minute and 100,000 a day per IP address (429 with Retry-After past that). Free with credit under the Edgepedia Community License 1.0; AI training is open to everyone.
license:
name: Edgepedia Community License 1.0
url: https://www.edgechat.ai/edgepedia/license
contact:
url: https://www.edgechat.ai/developers
name: EdgeChat
email: olivia.jin@biostate.ai
x-logo:
url: https://www.edgechat.ai/assets/edgechat-chestnut-orange-logo-v2.png
altText: EdgeChat
backgroundColor: '#FFFFFF'
href: https://www.edgechat.ai/developers
x-origin:
- format: openapi
version: '3.1'
url: https://www.edgechat.ai/openapi.json
servers:
- url: https://www.edgechat.ai/api/v1
tags:
- name: Search
paths:
/search:
get:
operationId: search
summary: Search articles by title words, another name of the subject, or a misspelling
parameters:
- name: q
in: query
required: true
schema:
type: string
maxLength: 200
description: A subject's name or words from its title.
example: koala
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 30
default: 10
description: Results per page.
- name: page
in: query
schema:
type: integer
minimum: 1
default: 1
description: Page number, from 1.
- $ref: '#/components/parameters/first'
- $ref: '#/components/parameters/topic'
- $ref: '#/components/parameters/geo'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/max_grade'
- $ref: '#/components/parameters/facets'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Matching articles, best first
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
examples:
live:
summary: GET https://www.edgechat.ai/api/v1/search?q=koala
description: 'A live answer of 2026-10-07: arrays cut to two items, long text cut with an ellipsis.'
value:
query: koala
match: exact
total: 2
page: 1
pages: 1
results:
- id: ep7rbwcy0a
slug: koala
title: Koala
topic: Life and health
excerpt: The koala (Phascolarctos cinereus), sometimes inaccurately called the koala bear, is an arboreal herbivorous marsupial native to eastern and southern Australia that eats almost nothing but eucalypt leaves.
snippet: The koala (Phascolarctos cinereus), sometimes inaccurately called the koala bear, is an arboreal herbivorous marsupial native to eastern and southern Australia that eats almost nothing but eucalypt leaves.
node: life.animals.mammals.monotremes-marsupials
url: https://www.edgechat.ai/koala
markdown_url: https://www.edgechat.ai/koala.md
api_url: https://www.edgechat.ai/api/v1/articles/koala
match: exact
confidence: 1
importance: 0.3926
rank: 222907
words: 1294
reading_grade: 13
reading_minutes: 5
highlight: The koala (Phascolarctos cinereus), sometimes inaccurately called the koala bear, is an arboreal herbivorous marsupial native to eastern and southern Australia that eats almost nothing but eucalypt leaves.
- id: epxxn3ztv8
slug: koala-man
title: Koala Man
topic: Arts, language, and belief
excerpt: Koala Man is a 2023 American-Australian adult animated superhero sitcom created by Michael Cusack for Hulu, starring Cusack, Sarah Snook, and Hugh Jackman in eight episodes.
snippet: Koala Man is a 2023 American-Australian adult animated superhero sitcom created by Michael Cusack for Hulu, starring Cusack, Sarah Snook, and Hugh Jackman in eight episodes.
node: culture.performance.screen.series.series_scripted_tv.animated-series.adult-animated-comedy-series
url: https://www.edgechat.ai/koala-man
markdown_url: https://www.edgechat.ai/koala-man.md
api_url: https://www.edgechat.ai/api/v1/articles/koala-man
match: partial
confidence: 0.7
importance: 0.5652
rank: 159570
words: 1366
reading_grade: 12.8
reading_minutes: 6
highlight: Koala Man is a 2023 American-Australian adult animated superhero sitcom created by Michael Cusack for Hulu, starring Cusack, Sarah Snook, and Hugh Jackman in eight episodes.
license:
name: Edgepedia Community License 1.0
url: https://www.edgechat.ai/edgepedia/license
summary: Free with credit, commercial use included. AI training is open to everyone. For other uses, organizations over USD 100M in revenue or 100M monthly users license separately.
headers:
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
ETag:
$ref: '#/components/headers/ETag'
Last-Modified:
$ref: '#/components/headers/Last-Modified'
Content-Digest:
$ref: '#/components/headers/Content-Digest'
Edgepedia-Corpus-Version:
$ref: '#/components/headers/Edgepedia-Corpus-Version'
'400':
description: 'An error: a missing or invalid parameter, or `unknown_parameter` for a parameter this route does not read.'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'429':
description: An error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
RateLimit:
$ref: '#/components/headers/RateLimit'
Retry-After:
description: Seconds to wait before the next request.
schema:
type: integer
'503':
description: Briefly unavailable; try again
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
RateLimit-Policy:
$ref: '#/components/headers/RateLimit-Policy'
description: 'Matches article titles and other names of the subject; when no title shares a word with the query, articles whose text matches follow, marked `match: fulltext`. Pass a subject''s name (''Mount Fuji''), not a question. Then call getArticle with a result''s slug. Words that name a topic also return `topics`. A page past the end has empty results; pages reach 1,000 results deep.'
tags:
- Search
components:
headers:
RateLimit-Policy:
description: 'The limiter''s two windows, per IP address and per server instance (IETF RateLimit header fields): 600 requests a minute and 100,000 a day.'
schema:
type: string
example: '"minute";q=600;w=60, "day";q=100000;w=86400'
Content-Digest:
description: sha-256 of the body (RFC 9530).
schema:
type: string
ETag:
description: A hash of the body; send it back as If-None-Match for a 304.
schema:
type: string
RateLimit:
description: 'On a 429 only: the window that was exceeded, no requests remaining (r=0), and the seconds until it resets (t).'
schema:
type: string
example: '"minute";r=0;t=42'
Edgepedia-Corpus-Version:
description: The corpus release that answered.
schema:
type: string
Last-Modified:
description: The corpus release date (informational; only the ETag validates).
schema:
type: string
schemas:
Topic:
type: object
properties:
id:
type: string
label:
type: string
articles:
type: integer
api_url:
type: string
format: uri
required:
- id
- label
- api_url
Match:
type: string
enum:
- exact
- alias
- misspelling
- partial
- none
- fulltext
SearchResultAdditions:
type: object
properties:
match:
$ref: '#/components/schemas/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.
License:
type: object
properties:
name:
type: string
url:
type: string
format: uri
summary:
type: string
spdx:
type: string
example: LicenseRef-Edgepedia-Community-1.0
required:
- name
- url
SearchResponse:
allOf:
- type: object
properties:
query:
type: string
did_you_mean:
type: string
topics:
type: array
items:
$ref: '#/components/schemas/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: '#/components/schemas/ArticleSummary'
- $ref: '#/components/schemas/SearchResultAdditions'
- $ref: '#/components/schemas/DerivedFields'
license:
$ref: '#/components/schemas/License'
- $ref: '#/components/schemas/SearchAnswerAdditions'
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
Error:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
hint:
type: string
next:
type: string
format: uri
did_you_mean:
type: array
items:
type: object
properties:
id:
type: string
slug:
type: string
title:
type: string
api_url:
type: string
required:
- code
- message
required:
- error
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.
SearchAnswerAdditions:
type: object
properties:
match:
$ref: '#/components/schemas/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
parameters:
fields:
name: fields
in: query
required: false
description: 'Comma-separated keys: each result (or the answer, when it has no results) keeps only these.'
schema:
type: string
facets:
name: facets
in: query
required: false
description: '1: counts of the matches by topic and geography region.'
schema:
type: string
enum:
- '1'
first:
name: first
in: query
required: false
description: 'true: only the best match.'
schema:
type: boolean
sort:
name: sort
in: query
required: false
description: 'relevance (default) or central: the most-linked subjects first, among every match up to 1,000.'
schema:
type: string
enum:
- relevance
- central
max_grade:
name: max_grade
in: query
required: false
description: Only articles at or below this reading grade; 503 until reading grades are published.
schema:
type: number
geo:
name: geo
in: query
required: false
description: Only articles under this geography id (every match, up to 1,000).
schema:
type: string
topic:
name: topic
in: query
required: false
description: Only articles under this topic id.
schema:
type: string
responses:
MethodNotAllowed:
description: '`method_not_allowed`: the API is read-only; use GET or HEAD (OPTIONS answers CORS preflights). The `Allow` header lists the methods.'
headers:
Allow:
schema:
type: string
description: GET, HEAD, OPTIONS
content:
application/json:
schema:
$ref: '#/components/schemas/Error'