EdgeChat Reconcile API

The Reconcile API from EdgeChat — 2 operation(s) for reconcile.

GitHub OpenAPI

Operations 3

GET /reconcile Reconciliation Service API 0.2: the manifest, or a batch of queries, or data… #
POST /reconcile The same, with queries or extend in a form or a JSON body #
GET /reconcile/{service} suggest, suggest-type, suggest-property, preview (HTML), view (redirect)… #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/edgechat-ai:edgechat-ai-reconcile-api"
All apis
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.

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.

OpenAPI Specification

edgechat-ai-reconcile-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Edgepedia Reconcile 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: Reconcile
paths:
  /reconcile:
    get:
      operationId: reconcile
      summary: 'Reconciliation Service API 0.2: the manifest, or a batch of queries, or data…'
      parameters:
      - name: queries
        in: query
        required: false
        description: 'JSON: { "q0": { "query": "…" } }'
        schema:
          type: string
      - name: extend
        in: query
        required: false
        description: 'JSON: { "ids": [], "properties": [{ "id": "url" }] }'
        schema:
          type: string
      - name: callback
        in: query
        required: false
        description: JSONP function name
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 10
        description: Candidates per query, 1 to 10.
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: The manifest, the candidates per query, or the extension rows
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReconcileGetResponse'
              examples:
                live:
                  summary: GET https://www.edgechat.ai/api/v1/reconcile
                  description: 'A live answer of 2026-10-07: arrays cut to two items, long text cut with an ellipsis.'
                  value:
                    versions:
                    - '0.2'
                    name: Edgepedia
                    identifierSpace: https://www.edgechat.ai/edgepedia/id/
                    schemaSpace: https://www.edgechat.ai/edgepedia/schema/
                    documentation: https://www.edgechat.ai/developers
                    defaultTypes:
                    - id: article
                      name: Edgepedia article
                    batchSize: 10
                    view:
                      url: https://www.edgechat.ai/api/v1/reconcile/view?id={{id}}
                    preview:
                      url: https://www.edgechat.ai/api/v1/reconcile/preview?id={{id}}
                      width: 400
                      height: 140
                    suggest:
                      entity:
                        service_url: https://www.edgechat.ai/api/v1/reconcile
                        service_path: /suggest
                      type:
                        service_url: https://www.edgechat.ai/api/v1/reconcile
                        service_path: /suggest-type
                      property:
                        service_url: https://www.edgechat.ai/api/v1/reconcile
                        service_path: /suggest-property
                    extend:
                      propose_properties:
                        service_url: https://www.edgechat.ai/api/v1/reconcile
                        service_path: /properties
                      property_settings: []
          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: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
        '429':
          description: Rate limited
          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
      tags:
      - Reconcile
    post:
      operationId: reconcilePost
      summary: The same, with queries or extend in a form or a JSON body
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                queries:
                  type: string
                extend:
                  type: string
          application/json:
            schema:
              type: object
            example:
              queries: '{"q0":{"query":"Koala"}}'
      responses:
        '200':
          description: The candidates per query, or the extension rows
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReconcilePostAnswer'
              examples:
                live:
                  summary: POST https://www.edgechat.ai/api/v1/reconcile
                  description: 'A live answer of 2026-10-07: arrays cut to two items, long text cut with an ellipsis.'
                  value:
                    q0:
                      result:
                      - id: ep7rbwcy0a
                        name: Koala
                        type:
                        - id: article
                          name: Edgepedia article
                        score: 98.8
                        match: true
                        description: 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
                        name: Koala Man
                        type:
                        - id: article
                          name: Edgepedia article
                        score: 1.2
                        match: false
                        description: 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.
          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: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
        '429':
          description: Rate limited
          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
      tags:
      - Reconcile
  /reconcile/{service}:
    get:
      operationId: reconcileService
      summary: suggest, suggest-type, suggest-property, preview (HTML), view (redirect)…
      parameters:
      - name: service
        in: path
        required: true
        schema:
          type: string
          enum:
          - suggest
          - suggest-type
          - suggest-property
          - preview
          - view
          - properties
        example: suggest
      - name: prefix
        in: query
        required: false
        description: For the suggest services
        schema:
          type: string
        example: koa
      - name: cursor
        in: query
        required: false
        description: Suggest offset
        schema:
          type: integer
      - name: id
        in: query
        required: false
        description: For preview and view
        schema:
          type: string
      - name: type
        in: query
        required: false
        description: For properties
        schema:
          type: string
      - name: callback
        in: query
        required: false
        description: JSONP function name
        schema:
          type: string
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: The service's answer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReconcileServiceResponse'
              examples:
                live:
                  summary: GET https://www.edgechat.ai/api/v1/reconcile/suggest?prefix=koa
                  description: 'A live answer of 2026-10-07: arrays cut to two items, long text cut with an ellipsis.'
                  value:
                    result:
                    - id: epbtcf7906
                      name: Kōan campaign
                      description: The Kōan campaign (弘安の役) was the second Mongol invasion of Japan, launched in 1281 by Yuan forces of Khubilai Khan, whose fleet of about 140,000 men was almost annihilated by a typhoon near Takashima.
                    - id: epxxn3ztv8
                      name: Koala Man
                      description: 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.
            text/html:
              schema:
                type: string
                description: 'preview?id=: an HTML card.'
          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: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
        '429':
          description: Rate limited
          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
        '302':
          description: 'view?id=: a redirect to the article''s page.'
          headers:
            Location:
              schema:
                type: string
                format: uri
        '404':
          description: No such article or service
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
      tags:
      - Reconcile
components:
  schemas:
    ReconcilePostResponse:
      type: object
      description: Keyed by each query's key as sent (q0, q1, …).
      additionalProperties:
        type: object
        properties:
          result:
            type: array
            items:
              type: object
              properties:
                id:
                  type: string
                name:
                  type: string
                type:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                score:
                  type: number
                match:
                  type: boolean
                description:
                  type: string
    ReconcileGetResponse:
      oneOf:
      - $ref: '#/components/schemas/ReconcileResponse'
      - $ref: '#/components/schemas/ReconcilePostResponse'
      - $ref: '#/components/schemas/ReconcileExtendResponse'
      description: 'No parameter: the service manifest. queries=: the candidates. extend=: the data extension.'
    ReconcileResponse:
      type: object
      properties:
        versions:
          type: array
          items:
            type: string
        name:
          type: string
        identifierSpace:
          type: string
        schemaSpace:
          type: string
        documentation:
          type: string
        defaultTypes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
        batchSize:
          type: integer
        view:
          type: object
          properties:
            url:
              type: string
        preview:
          type: object
          properties:
            url:
              type: string
            width:
              type: integer
            height:
              type: integer
        suggest:
          type: object
          properties:
            entity:
              type: object
              properties:
                service_url:
                  type: string
                service_path:
                  type: string
            type:
              type: object
              properties:
                service_url:
                  type: string
                service_path:
                  type: string
            property:
              type: object
              properties:
                service_url:
                  type: string
                service_path:
                  type: string
        extend:
          type: object
          properties:
            propose_properties:
              type: object
              properties:
                service_url:
                  type: string
                service_path:
                  type: string
            property_settings:
              type: array
              items: {}
      description: 'Shape read from a live answer of 2026-10-07; fields may be added, never renamed or removed. Every field is optional: an answer carries the fields of its own branch.'
    ReconcileExtendResponse:
      type: object
      description: 'The data extension: the properties asked for, and each id''s values.'
      properties:
        meta:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
        rows:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: array
              items:
                type: object
    ReconcilePostAnswer:
      oneOf:
      - $ref: '#/components/schemas/ReconcilePostResponse'
      - $ref: '#/components/schemas/ReconcileExtendResponse'
    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
    ReconcileServiceResponse:
      type: object
      properties:
        result:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              description:
                type: string
        properties:
          type: array
          description: 'properties?type=: the properties offered.'
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
      description: 'Shape read from a live answer of 2026-10-07; fields may be added, never renamed or removed. Every field is optional: an answer carries the fields of its own branch.'
  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'
    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'
    Content-Digest:
      description: sha-256 of the body (RFC 9530).
      schema:
        type: string
    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
    ETag:
      description: A hash of the body; send it back as If-None-Match for a 304.
      schema:
        type: string
  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