API Specifications · Schema

SpecificationRecord

A normalized record describing a single API specification language — its name, current version, governing body, license, format, and tooling ecosystem.

API SpecificationsSpecification LanguagesAPI DesignContractsSchemasInterface DefinitionsStandards

Properties

Name Type Description
id string Stable identifier for the specification.
name string Human-readable name of the specification.
aliases array Alternative or historical names for the specification.
category string The high-level category of specification.
currentVersion string Latest stable specification version.
versions array Known versions of the specification.
governingBody object Organization or working group responsible for the specification.
license object License under which the specification is published.
format string Primary serialization format of the specification source.
transports array Transports or protocols the specification targets.
primaryUseCase string The primary use case the specification is designed for.
specificationUrl string Canonical URL of the current specification text.
documentationUrl string Primary documentation entrypoint.
repositoryUrl string Canonical source repository for the specification.
toolingEcosystemUrl string URL to the curated tooling directory for the specification.
tags array Categorization tags (Title Case).
status string Overall lifecycle status of the specification.
embeddedSchemaLanguage string Schema language embedded inside the spec, if any.
emits array Other specification formats this spec can be compiled/emitted to.
View JSON Schema on GitHub

JSON Schema

specification-record-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/specifications/refs/heads/main/json-schema/specification-record-schema.json",
  "title": "SpecificationRecord",
  "description": "A normalized record describing a single API specification language — its name, current version, governing body, license, format, and tooling ecosystem.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Stable identifier for the specification.",
      "example": "openapi",
      "pattern": "^[a-z0-9][a-z0-9-]*$"
    },
    "name": {
      "type": "string",
      "description": "Human-readable name of the specification.",
      "example": "OpenAPI Specification"
    },
    "aliases": {
      "type": "array",
      "description": "Alternative or historical names for the specification.",
      "items": { "type": "string" },
      "example": ["Swagger Specification", "OAS"]
    },
    "category": {
      "type": "string",
      "description": "The high-level category of specification.",
      "enum": [
        "HTTP Request/Response",
        "Event-Driven",
        "Service Interface (IDL)",
        "Schema",
        "RPC Protocol",
        "Vendor-Defined"
      ],
      "example": "HTTP Request/Response"
    },
    "currentVersion": {
      "type": "string",
      "description": "Latest stable specification version.",
      "example": "3.1.0"
    },
    "versions": {
      "type": "array",
      "description": "Known versions of the specification.",
      "items": {
        "type": "object",
        "properties": {
          "version": { "type": "string" },
          "status": {
            "type": "string",
            "enum": ["active", "deprecated", "draft", "historical"]
          },
          "releaseDate": { "type": "string", "format": "date" },
          "url": { "type": "string", "format": "uri" }
        },
        "required": ["version", "status"]
      }
    },
    "governingBody": {
      "type": "object",
      "description": "Organization or working group responsible for the specification.",
      "properties": {
        "name": {
          "type": "string",
          "example": "OpenAPI Initiative"
        },
        "parent": {
          "type": "string",
          "description": "Umbrella foundation, if any.",
          "example": "Linux Foundation"
        },
        "url": { "type": "string", "format": "uri" },
        "governanceUrl": { "type": "string", "format": "uri" }
      },
      "required": ["name"]
    },
    "license": {
      "type": "object",
      "description": "License under which the specification is published.",
      "properties": {
        "id": {
          "type": "string",
          "description": "SPDX-style license identifier.",
          "example": "Apache-2.0"
        },
        "url": { "type": "string", "format": "uri" }
      },
      "required": ["id"]
    },
    "format": {
      "type": "string",
      "description": "Primary serialization format of the specification source.",
      "enum": ["YAML", "JSON", "Markdown", "XML", "DSL", "Protobuf", "Multiple"],
      "example": "YAML"
    },
    "transports": {
      "type": "array",
      "description": "Transports or protocols the specification targets.",
      "items": {
        "type": "string",
        "enum": [
          "HTTP/1.1",
          "HTTP/2",
          "HTTP/3",
          "WebSocket",
          "Kafka",
          "AMQP",
          "MQTT",
          "NATS",
          "SNS/SQS",
          "TCP",
          "gRPC",
          "XML/SOAP",
          "Multiple",
          "N/A"
        ]
      },
      "example": ["HTTP/1.1", "HTTP/2"]
    },
    "primaryUseCase": {
      "type": "string",
      "description": "The primary use case the specification is designed for.",
      "example": "Describing synchronous HTTP REST APIs and generating SDKs, documentation, and mocks."
    },
    "specificationUrl": {
      "type": "string",
      "format": "uri",
      "description": "Canonical URL of the current specification text."
    },
    "documentationUrl": {
      "type": "string",
      "format": "uri",
      "description": "Primary documentation entrypoint."
    },
    "repositoryUrl": {
      "type": "string",
      "format": "uri",
      "description": "Canonical source repository for the specification."
    },
    "toolingEcosystemUrl": {
      "type": "string",
      "format": "uri",
      "description": "URL to the curated tooling directory for the specification.",
      "example": "https://tools.openapis.org/"
    },
    "tags": {
      "type": "array",
      "description": "Categorization tags (Title Case).",
      "items": { "type": "string" }
    },
    "status": {
      "type": "string",
      "description": "Overall lifecycle status of the specification.",
      "enum": ["active", "maintenance", "legacy", "historical", "emerging"],
      "example": "active"
    },
    "embeddedSchemaLanguage": {
      "type": "string",
      "description": "Schema language embedded inside the spec, if any.",
      "example": "JSON Schema 2020-12"
    },
    "emits": {
      "type": "array",
      "description": "Other specification formats this spec can be compiled/emitted to.",
      "items": { "type": "string" },
      "example": ["OpenAPI 3.0", "JSON Schema", "Protobuf"]
    }
  },
  "required": [
    "id",
    "name",
    "category",
    "currentVersion",
    "governingBody",
    "license",
    "primaryUseCase"
  ]
}