RESTful · Schema
RESTful API Description
Minimal schema for describing a RESTful API — its identity, endpoints, and interface characteristics.
ArchitectureHTTPWeb Services
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier for this API |
| name | string | Human-readable API name |
| description | string | What the API does and who it is for |
| version | string | API version (e.g., 1.0, v2, 2026-05-01) |
| baseUrl | string | Base URL for all API endpoints |
| documentationUrl | string | URL of the human-readable API documentation |
| specificationUrl | string | URL of the machine-readable OpenAPI specification |
| authentication | object | Authentication requirements |
| maturityLevel | integer | Richardson Maturity Model level (0-3) |
| tags | array | Domain tags for classification |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api-evangelist.github.io/restful/schemas/api-description",
"title": "RESTful API Description",
"description": "Minimal schema for describing a RESTful API — its identity, endpoints, and interface characteristics.",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for this API"
},
"name": {
"type": "string",
"description": "Human-readable API name"
},
"description": {
"type": "string",
"description": "What the API does and who it is for"
},
"version": {
"type": "string",
"description": "API version (e.g., 1.0, v2, 2026-05-01)"
},
"baseUrl": {
"type": "string",
"format": "uri",
"description": "Base URL for all API endpoints"
},
"documentationUrl": {
"type": "string",
"format": "uri",
"description": "URL of the human-readable API documentation"
},
"specificationUrl": {
"type": "string",
"format": "uri",
"description": "URL of the machine-readable OpenAPI specification"
},
"authentication": {
"type": "object",
"description": "Authentication requirements",
"properties": {
"type": {
"type": "string",
"enum": ["none", "apiKey", "bearer", "basic", "oauth2", "openid"],
"description": "Authentication scheme"
},
"documentationUrl": {
"type": "string",
"format": "uri",
"description": "Authentication setup documentation"
}
}
},
"maturityLevel": {
"type": "integer",
"minimum": 0,
"maximum": 3,
"description": "Richardson Maturity Model level (0-3)"
},
"tags": {
"type": "array",
"items": { "type": "string" },
"description": "Domain tags for classification"
}
},
"required": ["name", "baseUrl"]
}