letagentsin-com Corpus.json API

The Corpus.json API from letagentsin-com — 1 operation(s) for corpus.json.

Operations 1

GET /corpus.json Every curated domain we have scanned, one formula version throughout #

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/letagentsin-com:letagentsin-com-corpus-json-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

letagentsin-com-corpus-json-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Let Agents In Corpus.json API
  version: 1.0.0
  description: Scores a domain on agent readiness across 5 funnel stages, using 16 deterministic HTTP checks. 18 points exist on paper; the score is out of `measurable`, the points that both applied and could be evaluated. No account, no key.
  contact:
    email: hello@letagentsin.com
    url: https://letagentsin.com/methodology
servers:
- url: https://letagentsin.com
tags:
- name: Corpus.json
paths:
  /corpus.json:
    get:
      summary: Every curated domain we have scanned, one formula version throughout
      operationId: getCorpus
      responses:
        '200':
          description: The published corpus, recomputed per request
          content:
            application/json:
              schema:
                type: object
                properties:
                  formulaVersion:
                    type: string
                  domains:
                    type: integer
                  max:
                    type: integer
                  notes:
                    type: array
                    items:
                      type: string
                    description: Read these before counting anything. One of them says that filtering rows on points < max is the obvious way to count failures and is wrong, because it counts what we could not measure and what does not apply as the vendor failing. Use checks[].tally instead
                  checks:
                    type: array
                    description: One entry per check with the corpus-wide tally, which is what a count of failures should be read from
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          enum:
                          - answers_plain_request
                          - price_in_snippet
                          - llms_txt
                          - docs_without_js
                          - user_agents_allowed
                          - robots_paths_resolve
                          - no_crawl_delay
                          - agent_entry_point
                          - oauth_dcr
                          - mcp_present
                          - signup_no_captcha
                          - signup_reachable
                          - programmatic_provisioning
                          - self_serve
                          - typed_package
                          - machine_readable_api
                        stage:
                          type: string
                          enum:
                          - discovery
                          - entry
                          - signup
                          - provisioning
                          - integration
                        label:
                          type: string
                        max:
                          type: integer
                        helpUri:
                          type: string
                        tally:
                          type: object
                          properties:
                            pass:
                              type: integer
                            partial:
                              type: integer
                            fail:
                              type: integer
                            unmeasured:
                              type: integer
                            notApplicable:
                              type: integer
                            measured:
                              type: integer
                              description: pass + partial + fail, the denominator for a rate
                  rows:
                    type: array
                    items:
                      type: object
                      properties:
                        domain:
                          type: string
                        category:
                          type:
                          - string
                          - 'null'
                        total:
                          type: integer
                        measurable:
                          type: integer
                        unattendedGrant:
                          type:
                          - boolean
                          - 'null'
                        scorecardUrl:
                          type: string
                        measuredOn:
                          type:
                          - string
                          - 'null'
                          description: The domain we actually read, when the one we were asked about redirects elsewhere
                        rateLimited:
                          type:
                          - boolean
                          - 'null'
                        checks:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                enum:
                                - answers_plain_request
                                - price_in_snippet
                                - llms_txt
                                - docs_without_js
                                - user_agents_allowed
                                - robots_paths_resolve
                                - no_crawl_delay
                                - agent_entry_point
                                - oauth_dcr
                                - mcp_present
                                - signup_no_captcha
                                - signup_reachable
                                - programmatic_provisioning
                                - self_serve
                                - typed_package
                                - machine_readable_api
                              verdict:
                                type: string
                                enum:
                                - pass
                                - partial
                                - fail
                                - unmeasured
                                - notApplicable
                              points:
                                type: integer
                              max:
                                type: integer
        '404':
          description: No corpus yet
      tags:
      - Corpus.json