Rules Feed

Spectral ruleset files collected from API providers — linting rules for OpenAPI and AsyncAPI spec quality enforcement.

RulesSpectralGovernanceLinting

Feed Endpoint

GET https://rules.apis.io/search-index.json

No authentication required. Returns a JSON array. CORS headers are set on all feeds.

API Catalog: https://rules.apis.io/.well-known/api-catalog (RFC 9727)

Response Schema

Each item in the array has these fields:

FieldTypeDescription
i integer Sequential index position
type string Always "rule"
n string Ruleset name
d string Ruleset description
t array Tags
u string Ruleset detail page URL on rules.apis.io

Example Request

curl -s https://rules.apis.io/search-index.json | head -c 500

Example Response

[
  {
    "i": 0,
    "type": "rules",
    "n": "Example Rules Name",
    "d": "A short description of this resource...",
    "t": ["Tag1", "Tag2"],
    "u": "https://rules.apis.io/example-slug/"
  },
  ...
]

Usage

JavaScript / Browser

const response = await fetch('https://rules.apis.io/search-index.json');
const items = await response.json();

items.forEach(item => {
  console.log(item.n, item.u);
});

MiniSearch Integration

import MiniSearch from 'minisearch';

const response = await fetch('https://rules.apis.io/search-index.json');
const docs = await response.json();

const index = new MiniSearch({
  idField: 'i',
  fields: ['n', 'd'],
  storeFields: ['n', 'd', 'u', 't']
});

index.addAll(docs);

const results = index.search('your query');

Python

import requests

response = requests.get('https://rules.apis.io/search-index.json')
items = response.json()

for item in items:
    print(item['n'], item['u'])

Browse the full Rules catalog at https://rules.apis.io/.