AI Demos Research Public API

The research-public API from AI Demos — 12 operation(s) for research-public.

Operations 12

GET /v2/research/view/rankings/{slug} Ranking Page #
GET /v2/research/view/tools/{slug} Tool Page #
GET /v2/research/view/capabilities/{slug} Capability Page #
GET /v2/research/view/scenarios/{slug} Scenario Page #
GET /v2/research/view/evidence/{evidence_id} Evidence Page #
GET /v2/research/view/cells/{subject_slug}/{scenario_slug} Cell Page #
GET /v2/research/view/resolve/test-cases/{tcv_id} Resolve Test Case #
GET /v2/research/view/resolve/runs/{run_id} Resolve Run #
GET /v2/research/view/resolve/observations/{obs_id} Resolve Observation #
GET /v2/research/view/resolve/code/{code} Resolve Code #
GET /v2/research/view/results Published Results #
GET /v2/research/view/index Index #

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/aidemos-com:aidemos-com-research-public-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

aidemos-com-research-public-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Aidemos Com Research Public API
  version: 0.1.0
  description: 'Operations tagged research-public across 2 of this provider''s published API definitions: aidemos-com-openapi.json, mcp-openapi.json. Each path carries the servers of the definition it was published in.'
tags:
- name: research-public
paths:
  /v2/research/view/rankings/{slug}:
    get:
      tags:
      - research-public
      summary: Ranking Page
      description: The published ranking. Scores, the scenarios behind them, and every exclusion with its rule.
      operationId: ranking_page_v2_research_view_rankings__slug__get
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
          title: Slug
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Ranking Page V2 Research View Rankings  Slug  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/tools/{slug}:
    get:
      tags:
      - research-public
      summary: Tool Page
      description: 'One subject, every question we asked it, and what it actually did.


        The rail is Tool x Scenario, because that is the atom of demand: nobody wants "a page about

        Draxlr", they want "can Draxlr keep context across a follow-up". Every row is openable to the

        execution behind it.'
      operationId: tool_page_v2_research_view_tools__slug__get
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
          title: Slug
      - name: benchmark
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Benchmark
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Tool Page V2 Research View Tools  Slug  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/capabilities/{slug}:
    get:
      tags:
      - research-public
      summary: Capability Page
      description: 'A capability is a taxonomy node, so its page is a coverage map: which questions sit under it,

        which subjects have been asked them, and — the useful part — which cells nobody has run.'
      operationId: capability_page_v2_research_view_capabilities__slug__get
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
          title: Slug
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Capability Page V2 Research View Capabilities  Slug  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/scenarios/{slug}:
    get:
      tags:
      - research-public
      summary: Scenario Page
      description: 'The question, the standard it is judged by, the stimuli that ask it, and every answer.


        The rubric gets real space here because it is the thing that makes a verdict disputable rather

        than assertable — and the version stack is shown, because "we re-graded under a stricter

        standard and here is both readings" is the platform''s headline claim.'
      operationId: scenario_page_v2_research_view_scenarios__slug__get
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
          title: Slug
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Scenario Page V2 Research View Scenarios  Slug  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/evidence/{evidence_id}:
    get:
      tags:
      - research-public
      summary: Evidence Page
      description: 'One assessment, standing alone.


        A permalink somebody cited must answer without the reader knowing the run, the benchmark or the

        study — so this carries the question, the standard, the stimulus, the artifacts and the verdict

        in one response, and says plainly whether the bytes behind it were captured or reconstructed.'
      operationId: evidence_page_v2_research_view_evidence__evidence_id__get
      parameters:
      - name: evidence_id
        in: path
        required: true
        schema:
          type: string
          title: Evidence Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Evidence Page V2 Research View Evidence  Evidence Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/cells/{subject_slug}/{scenario_slug}:
    get:
      tags:
      - research-public
      summary: Cell Page
      description: 'The atom of demand: can THIS tool do THIS thing?


        `scope=benchmark` reads it as the published benchmark reads it — under the rubric that version

        pins. `scope=global` reads every assessment ever made. The same evidence row is legitimately

        current under one and superseded under the other, and showing both is the point rather than an

        inconsistency to hide.


        `edition=&key=` is the human publication reviewer''s DRAFT PREVIEW: the same

        response shape with `edition` filled from the NAMED edition — whatever its state — and a

        `preview` block saying so, so the site can render the final-looking page from the draft''s

        public projection behind Draft Mode. A public reader never sends the key and never sees it.


        `edition=` alone is the public HISTORICAL read of a SUPERSEDED edition: the page as it was

        published then, with a `historical` block (when it was replaced, by which edition, where the

        current page is) so the site can say so, noindex it and point its canonical at the current page.


        `public_history` is on every answer, edition or not: the cell''s public events (first published ·

        updated · republished · taken down) composed from the ledger — never from a draft''s lifecycle,

        and empty for a cell nobody ever published.


        `address` is on every answer: the result''s public address under the approved IA

        (`/benchmarks/{b}/results/{t}/{s}`, `public_routes`), with the benchmark READ from the

        published edition (or resolved by the cell''s editions / a single containing benchmark), the

        canonical page, and the legacy `/r/cells/…` address the site redirects from. `benchmark=`

        is the segment the page was asked under: the scope view reads under that benchmark''s version,

        and a benchmark that does not contain the cell is a 404.'
      operationId: cell_page_v2_research_view_cells__subject_slug___scenario_slug__get
      parameters:
      - name: subject_slug
        in: path
        required: true
        schema:
          type: string
          title: Subject Slug
      - name: scenario_slug
        in: path
        required: true
        schema:
          type: string
          title: Scenario Slug
      - name: scope
        in: query
        required: false
        schema:
          type: string
          pattern: ^(benchmark|global)$
          default: benchmark
          title: Scope
      - name: edition
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'a NAMED edition of the cell. Alone: the public HISTORICAL read of a superseded result. With `key`: the reviewer''s DRAFT PREVIEW (any state).'
          title: Edition
        description: 'a NAMED edition of the cell. Alone: the public HISTORICAL read of a superseded result. With `key`: the reviewer''s DRAFT PREVIEW (any state).'
      - name: key
        in: query
        required: false
        schema:
          type: string
          description: the low-power PREVIEW_SECRET; turns `edition` into a draft preview
          default: ''
          title: Key
        description: the low-power PREVIEW_SECRET; turns `edition` into a draft preview
      - name: draft
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: '0095 — with `edition` + `key` only: render EXACTLY this draft of the edition (never a newer one). Page-QA and the human reviewer pin the page they judged'
          title: Draft
        description: '0095 — with `edition` + `key` only: render EXACTLY this draft of the edition (never a newer one). Page-QA and the human reviewer pin the page they judged'
      - name: benchmark
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'the benchmark segment of the address the page was asked for (`/benchmarks/{b}/results/{t}/{s}`): the scope view reads under it; must contain the cell'
          title: Benchmark
        description: 'the benchmark segment of the address the page was asked for (`/benchmarks/{b}/results/{t}/{s}`): the scope view reads under it; must contain the cell'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Cell Page V2 Research View Cells  Subject Slug   Scenario Slug  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/resolve/test-cases/{tcv_id}:
    get:
      tags:
      - research-public
      summary: Resolve Test Case
      operationId: resolve_test_case_v2_research_view_resolve_test_cases__tcv_id__get
      parameters:
      - name: tcv_id
        in: path
        required: true
        schema:
          type: string
          title: Tcv Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Resolve Test Case V2 Research View Resolve Test Cases  Tcv Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/resolve/runs/{run_id}:
    get:
      tags:
      - research-public
      summary: Resolve Run
      description: 'A run renders inside an evidence page. The current, non-retracted grade wins; a run with no

        grade yet resolves to nothing, and says so instead of guessing.'
      operationId: resolve_run_v2_research_view_resolve_runs__run_id__get
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          title: Run Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Resolve Run V2 Research View Resolve Runs  Run Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/resolve/observations/{obs_id}:
    get:
      tags:
      - research-public
      summary: Resolve Observation
      operationId: resolve_observation_v2_research_view_resolve_observations__obs_id__get
      parameters:
      - name: obs_id
        in: path
        required: true
        schema:
          type: string
          title: Obs Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Resolve Observation V2 Research View Resolve Observations  Obs Id  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/resolve/code/{code}:
    get:
      tags:
      - research-public
      summary: Resolve Code
      description: The human handle (`S19`, `TC87`, `R12`, `E85`) — one namespace, one resolver, public.
      operationId: resolve_code_v2_research_view_resolve_code__code__get
      parameters:
      - name: code
        in: path
        required: true
        schema:
          type: string
          title: Code
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Resolve Code V2 Research View Resolve Code  Code  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v2/research/view/results:
    get:
      tags:
      - research-public
      summary: Published Results
      description: 'Every result with a PUBLISHED edition, at its canonical benchmark-scoped address — what the

        site''s sitemap lists. `updated_at` is the publication moment of the live edition (the ledger''s

        `published` event for it); a taken-down or draft-only cell is not here.'
      operationId: published_results_v2_research_view_results_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Published Results V2 Research View Results Get
  /v2/research/view/index:
    get:
      tags:
      - research-public
      summary: Index
      operationId: index_v2_research_view_index_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Index V2 Research View Index Get
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
x-refined-from:
- aidemos-com-openapi.json
- mcp-openapi.json