APIs.json · Schema
JSON Schema for APIs.json 0.19
API AggregationAPI CatalogingAPI CommonsAPI DiscoveryAPI GovernanceAPI OperationsMachine ReadableSpecificationStandard
Properties
| Name | Type | Description |
|---|---|---|
| aid | string | unique identifier for APIs.json |
| type | string | The type of the APIs.json collection. |
| position | string | The position of the maintainer of APIs.json. |
| access | string | The access level for the APIs in an APIs.json. |
| name | string | The name of the service described |
| description | string | Description of the service |
| url | string | URL where the apis.json file will live |
| image | string | Image to represent the API |
| created | string | Date when the file was created |
| modified | string | Date when the file was modified |
| specificationVersion | string | APIs.json spec version, latest is 0.19 |
| apis | array | All the APIs of this service |
| maintainers | array | Maintainers of the apis.json file |
| tags | array | Tags to describe the service |
| include | array | Links to other apis.json definitions included in this service |
| common | array | Common properties that apply across all APIs. |
| overlays | array | Links to other apis.json that will be overlaid original. |
| network | array | Links to other apis.json that will be included in discovery. |
JSON Schema
{
"$id": "https://github.com/apis-json/api-json/blob/develop/spec/",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "JSON Schema for APIs.json 0.19",
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^X-": {
"type": "object"
}
},
"$defs": {
"maintainers": {
"description": "The person or organization responsible for maintaining the API",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "name",
"minLength": 5
}
},
"additionalProperties": {
"type": "string"
}
},
"apis": {
"description": "The description of the API",
"required": [
"name",
"description",
"image",
"baseURL",
"humanURL",
"properties"
],
"properties": {
"aid": {
"type": "string",
"description": "unique identifier for API"
},
"name": {
"type": "string",
"description": "name",
"minLength": 2
},
"description": {
"type": "string",
"description": "description of the API",
"minLength": 5
},
"image": {
"type": "string",
"description": "URL of an image representing the API"
},
"created": {
"type": "string",
"format": "date",
"description": "Date when the api was added to APIs.json"
},
"modified": {
"type": "string",
"format": "date",
"description": "Date when the api was last modified"
},
"baseURL": {
"type": "string",
"pattern": "^(http)|(https)://(.*)$",
"description": "baseURL"
},
"humanURL": {
"type": "string",
"pattern": "^(http)|(https)://(.*)$",
"description": "humanURL"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "tags to describe the API"
},
"properties": {
"type": "array",
"items": {
"$ref": "#/$defs/urls"
},
"description": "URLs"
},
"contact": {
"type": "array",
"items": {
"$ref": "#/$defs/contact"
},
"description": "Contact to reach if questions about API"
},
"meta": {
"type": "array",
"items": {
"$ref": "#/$defs/metaInformation"
}
}
}
},
"metaInformation": {
"description": "Metadata about the API",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"contact": {
"description": "Information on contacting the API support",
"required": [
"FN"
],
"additionalProperties": true,
"patternProperties": {
"^X-": {
"type": "string"
}
},
"properties": {
"FN": {
"type": "string",
"minLength": 1
},
"email": {
"type": "string",
"format": "email"
},
"organizationName": {
"type": "string",
"minLength": 1
},
"adr": {
"type": "string"
},
"tel": {
"type": "string",
"minLength": 1
},
"X-twitter": {
"type": "string"
},
"X-github": {
"type": "string"
},
"photo": {
"type": "string",
"pattern": "^(http)|(https)://(.*)$"
},
"vCard": {
"type": "string",
"pattern": "^(http)|(https)://(.*)$"
},
"url": {
"type": "string",
"pattern": "^(http)|(https)://(.*)$"
}
}
},
"urls": {
"description": "A representation of a URL",
"required": [
"type",
"url"
],
"properties": {
"name": {
"type": "string",
"description": "The display name of the property."
},
"description": {
"type": "string",
"description": "The description of the property.",
"minLength": 5
},
"type": {
"type": "string",
"description": "One of the designated API property types or a custom one prefixed with x-.",
"pattern": "^(Swagger)$|^(OpenAPI)$|^(JSONSchema)$|^(GraphQLSchema)$|^(PostmanCollection)$|^(PostmanWorkspace)$|^(AsyncAPI)$|^(RAML)$|^(Blueprint)$|^(WADL)$|^(WSDL)$|^(GettingStarted)$|^(Documentation)$|^(Authentication)$|^(Versioning)$|^(Signup)$|^(Login)$|^(TermsOfService)$|^(InterfaceLicense)$|^(PrivacyPolicy)$|^(DeprecationPolicy)$|^(ServiceLevelAgreement)$|^(Security)$|^(SDKs)$|^(StatusPage)$|^(Pricing)$|^(RateLimits)$|^(Blog)$|^(BlogFeed)$|^(Forums)$|^(Support)$|^(ChangeLog)$|^(RoadMap)$|^(Contact)$|^(ErrorCodes)$|^(GitHubOrg)$|^(GitHubRepo)$|^(Twitter)$|^(AlertsTwitterHandle)$|^(Webhooks)$|^(Integrations)$|^(OpenAIPluginManifest)$|^(X-[A-Za-z0-9\\-]*)$"
},
"mediaType": {
"type": "string",
"description": "IANA media type representing the property."
},
"url": {
"type": "string",
"description": "The URL for the property. * must be url or data."
},
"data": {
"type": "object",
"description": "The data for the property. * must be url or data"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"description": "Tags to describe the property."
}
}
},
"tags": {
"description": "A consistent set of tag to apply to a description"
},
"include": {
"description": "Include other APIs.json file",
"required": [
"name",
"url"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string"
}
}
},
"overlay": {
"description": "Overlay other APIs.json file",
"required": [
"url"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string"
}
}
},
"network": {
"description": "Network APIs.json file",
"required": [
"name",
"url"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"url": {
"type": "string"
}
}
}
},
"required": [
"name",
"description",
"url",
"apis",
"maintainers",
"tags"
],
"properties": {
"aid": {
"type": "string",
"description": "unique identifier for APIs.json"
},
"type": {
"type": "string",
"description": "The type of the APIs.json collection.",
"enum": [
"Index",
"Template",
"Example"
]
},
"position": {
"type": "string",
"description": "The position of the maintainer of APIs.json.",
"enum": [
"Producing",
"Consuming"
]
},
"access": {
"type": "string",
"description": "The access level for the APIs in an APIs.json.",
"enum": [
"Internal",
"1st-Party",
"3rd-Party"
]
},
"name": {
"type": "string",
"description": "The name of the service described",
"minLength": 3,
"maxLength": 50
},
"description": {
"type": "string",
"description": "Description of the service",
"minLength": 5,
"maxLength": 1000
},
"url": {
"type": "string",
"description": "URL where the apis.json file will live",
"pattern": "^(http)|(https)://(.*)$"
},
"image": {
"type": "string",
"description": "Image to represent the API"
},
"created": {
"type": "string",
"format": "date",
"description": "Date when the file was created"
},
"modified": {
"type": "string",
"format": "date",
"description": "Date when the file was modified"
},
"specificationVersion": {
"type": "string",
"description": "APIs.json spec version, latest is 0.19"
},
"apis": {
"type": "array",
"items": {
"$ref": "#/$defs/apis"
},
"description": "All the APIs of this service"
},
"maintainers": {
"type": "array",
"items": {
"$ref": "#/$defs/contact"
},
"description": "Maintainers of the apis.json file"
},
"tags": {
"type": "array",
"items": {
"$ref": "#/$defs/tags"
},
"description": "Tags to describe the service"
},
"include": {
"type": "array",
"items": {
"$ref": "#/$defs/include"
},
"description": "Links to other apis.json definitions included in this service"
},
"common": {
"description": "Common properties that apply across all APIs.",
"type": "array",
"items": {
"$ref": "#/$defs/urls"
}
},
"overlays": {
"type": "array",
"items": {
"$ref": "#/$defs/overlay"
},
"description": "Links to other apis.json that will be overlaid original."
},
"network": {
"type": "array",
"items": {
"$ref": "#/$defs/network"
},
"description": "Links to other apis.json that will be included in discovery."
}
}
}