Skip to content

janwilmake/openapisearch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenAPI-Search combines multiple OpenAPIs in a fast, organized, and searchable interface.

OpenAPIs are effectively closed if there isn't an accessible way to find and use them. Big commercial API directories such as https://rapidapi.com are currently dominating the search results and the # of APIs indexed, leading many developers to a non-open API gateway. Open Source is far behind.

The best OpenAPI directory as of yet is https://apis.guru but this doesn't even reach 10% of the amount of listed APIs and there is many room for improvement.

The vision of https://openapisearch.com is to make OpenAPIs truly open by making it accessible (easy to find what you're looking for) and improving listing quality.

Related work: https://github.com/janwilmake/oapis and https://github.com/janwilmake/oapis.npm and https://github.com/janwilmake/openapi-mcp-server

Goals

Targeted improvements compared to https://apis.guru:

  • Easy navigation for agents
  • Programmatic Registry
  • Improved Website

Wishlist:

  • E2E Testing of OpenAPIs
  • AI Crawler for API Discovery
  • AI Crawler to augment OpenAPI Metadata
    • Adds authentication + scope info
    • Adds useful links
    • Adds reviews
    • Adds pricing info, ratelimit info, etc

Non-goals

  • Create a docs reference website like readme.com (there are many) - for this we're using stoplight now.
  • Add weird custom logic that is non-standard to the OpenAPI. Instead, I aim to create a layer on top of openapis to improve the implementation of the standard. I'll use actionschema for this.

Changelog

On Agent-readiness for API products

  1. Make your OpenAPI super good.

Your OpenAPI is your source of truth. Common pitfalls include:

  • Missing operationId, summary and/or description in your operations (summary should be up to 1 sentence, description up to a paragraph)
  • Unclear or vague operationId, summary, or description. What matters is clarity to token ratio (a.k.a. signal to noise ratio)
  • Missing servers[0].url field.
  • Missing authentication options.
  • Not referencing externalDocs.url. Almost nobody uses this. If you do, please ensure the url provided responds with markdown by default when accessed via curl {url}. When browsers access it, it's fine to respond with html.

A good OpenAPI specification should allow an agent to navigate the entirety of your APIs and should be easily navigatable. To make the API more navigatable, I have developed openapi-for-llms which collapses your OpenAPI spec into a llms.txt compatible file that can be exposed on the web or in your repo. To make this file high-quality, it's important to provide a high-level overview to the APIs on how to use them. This can either be placed in info.description or as part of your tags[n].description fields. Tags will be leveraged to structure your llms.txt better, grouping the APIs per tag.

  1. Make your OpenAPI discoverable.

Unfortunately there has not been any conclusion on how OAS wants to be made discoverable still, but discussions have been plentiful. The easiest way to do make it discoverable, is redirecting to your openapi.json file from https://yourlanding.com/.well-known/openapi. Besides that, it's good practice to put your openapi.json at the root of your api tld. Read more in openapi-discovery

  1. Have all your APIs documented in a single OpenAPI file

Some large APIs have different files for different parts of their API. In that case, it's best to merge it in some way, for example with redocly

About

Making APIs accessible to AI Codegen

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published