{
   "openapi": "3.0.0",
   "x-optic-url": "https://app.useoptic.com/organizations/febf8ac6-ee67-4565-b45a-5c85a469dca7/apis/_0fKWqUvhs9ssYNkq1k-c",
   "x-optic-standard": "@febf8ac6-ee67-4565-b45a-5c85a469dca7/Fz6KU3_wMIO5iJ6_VUZ30",
   "info": {
      "version": "2.2.0",
      "title": "APIs.guru",
      "description": "Wikipedia for Web APIs. Repository of API definitions in OpenAPI format.\n**Warning**: If you want to be notified about changes in advance please join our [Slack channel](https://join.slack.com/t/mermade/shared_invite/zt-g78g7xir-MLE_CTCcXCdfJfG3CJe9qA).\nClient sample: [[Demo]](https://apis.guru/simple-ui) [[Repo]](https://github.com/APIs-guru/simple-ui)\n",
      "contact": {
         "name": "APIs.guru",
         "url": "https://APIs.guru",
         "email": "mike.ralphson@gmail.com"
      },
      "license": {
         "name": "CC0 1.0",
         "url": "https://github.com/APIs-guru/openapi-directory#licenses"
      },
      "x-logo": {
         "url": "https://apis.guru/branding/logo_vertical.svg"
      }
   },
   "externalDocs": {
      "url": "https://github.com/APIs-guru/openapi-directory/blob/master/API.md"
   },
   "servers": [
      {
         "url": "https://api.apis.guru/v2"
      }
   ],
   "security": [],
   "tags": [
      {
         "name": "APIs",
         "description": "Actions relating to APIs in the collection"
      }
   ],
   "paths": {
      "/providers.json": {
         "get": {
            "operationId": "getProviders",
            "tags": [
               "APIs"
            ],
            "summary": "List all providers",
            "description": "List all the providers in the directory\n",
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "type": "object",
                           "properties": {
                              "data": {
                                 "type": "array",
                                 "items": {
                                    "type": "string",
                                    "minLength": 1
                                 },
                                 "minItems": 1
                              }
                           }
                        }
                     }
                  }
               }
            }
         }
      },
      "/{provider}.json": {
         "get": {
            "operationId": "getProvider",
            "tags": [
               "APIs"
            ],
            "summary": "List all APIs for a particular provider",
            "description": "List all APIs in the directory for a particular providerName\nReturns links to the individual API entry for each API.\n",
            "parameters": [
               {
                  "$ref": "#/components/parameters/provider"
               }
            ],
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "$ref": "#/components/schemas/APIs"
                        }
                     }
                  }
               }
            }
         }
      },
      "/{provider}/services.json": {
         "get": {
            "operationId": "getServices",
            "tags": [
               "APIs"
            ],
            "summary": "List all serviceNames for a particular provider",
            "description": "List all serviceNames in the directory for a particular providerName\n",
            "parameters": [
               {
                  "$ref": "#/components/parameters/provider"
               }
            ],
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "type": "object",
                           "properties": {
                              "data": {
                                 "type": "array",
                                 "items": {
                                    "type": "string",
                                    "minLength": 0
                                 },
                                 "minItems": 1
                              }
                           }
                        }
                     }
                  }
               }
            }
         }
      },
      "/specs/{provider}/{api}.json": {
         "get": {
            "operationId": "getAPI",
            "tags": [
               "APIs"
            ],
            "summary": "Retrieve one version of a particular API",
            "description": "Returns the API entry for one specific version of an API where there is no serviceName.",
            "parameters": [
               {
                  "$ref": "#/components/parameters/provider"
               },
               {
                  "$ref": "#/components/parameters/api"
               }
            ],
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "$ref": "#/components/schemas/API"
                        }
                     }
                  }
               }
            }
         }
      },
      "/specs/{provider}/{service}/{api}.json": {
         "get": {
            "operationId": "getServiceAPI",
            "tags": [
               "APIs"
            ],
            "summary": "Retrieve one version of a particular API with a serviceName.",
            "description": "Returns the API entry for one specific version of an API where there is a serviceName.",
            "parameters": [
               {
                  "$ref": "#/components/parameters/provider"
               },
               {
                  "name": "service",
                  "in": "path",
                  "required": true,
                  "schema": {
                     "type": "string",
                     "minLength": 1,
                     "maxLength": 255
                  }
               },
               {
                  "$ref": "#/components/parameters/api"
               }
            ],
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "$ref": "#/components/schemas/API"
                        }
                     }
                  }
               }
            }
         }
      },
      "/list.json": {
         "get": {
            "operationId": "listAPIs",
            "tags": [
               "APIs"
            ],
            "summary": "List all APIs",
            "description": "List all APIs in the directory.\nReturns links to the OpenAPI definitions for each API in the directory.\nIf API exist in multiple versions `preferred` one is explicitly marked.\nSome basic info from the OpenAPI definition is cached inside each object.\nThis allows you to generate some simple views without needing to fetch the OpenAPI definition for each API.\n",
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "$ref": "#/components/schemas/APIs"
                        }
                     }
                  }
               }
            }
         }
      },
      "/metrics.json": {
         "get": {
            "operationId": "getMetrics",
            "summary": "Get basic metrics",
            "description": "Some basic metrics for the entire directory.\nJust stunning numbers to put on a front page and are intended purely for WoW effect :)\n",
            "tags": [
               "APIs"
            ],
            "responses": {
               "200": {
                  "description": "OK",
                  "content": {
                     "application/json": {
                        "schema": {
                           "$ref": "#/components/schemas/Metrics"
                        }
                     }
                  }
               }
            }
         }
      }
   },
   "components": {
      "schemas": {
         "APIs": {
            "description": "List of API details.\nIt is a JSON object with API IDs(`<provider>[:<service>]`) as keys.\n",
            "type": "object",
            "additionalProperties": {
               "$ref": "#/components/schemas/API"
            },
            "minProperties": 1
         },
         "API": {
            "description": "Meta information about API",
            "type": "object",
            "required": [
               "added",
               "preferred",
               "versions"
            ],
            "properties": {
               "added": {
                  "description": "Timestamp when the API was first added to the directory",
                  "type": "string",
                  "format": "date-time"
               },
               "preferred": {
                  "description": "Recommended version",
                  "type": "string"
               },
               "versions": {
                  "description": "List of supported versions of the API",
                  "type": "object",
                  "additionalProperties": {
                     "$ref": "#/components/schemas/ApiVersion"
                  },
                  "minProperties": 1
               }
            },
            "additionalProperties": false
         },
         "ApiVersion": {
            "type": "object",
            "required": [
               "added",
               "updated",
               "swaggerUrl",
               "swaggerYamlUrl",
               "info",
               "openapiVer"
            ],
            "properties": {
               "added": {
                  "description": "Timestamp when the version was added",
                  "type": "string",
                  "format": "date-time"
               },
               "updated": {
                  "description": "Timestamp when the version was updated",
                  "type": "string",
                  "format": "date-time"
               },
               "swaggerUrl": {
                  "description": "URL to OpenAPI definition in JSON format",
                  "type": "string",
                  "format": "url"
               },
               "swaggerYamlUrl": {
                  "description": "URL to OpenAPI definition in YAML format",
                  "type": "string",
                  "format": "url"
               },
               "link": {
                  "description": "Link to the individual API entry for this API",
                  "type": "string",
                  "format": "url"
               },
               "info": {
                  "description": "Copy of `info` section from OpenAPI definition",
                  "type": "object",
                  "minProperties": 1
               },
               "externalDocs": {
                  "description": "Copy of `externalDocs` section from OpenAPI definition",
                  "type": "object",
                  "minProperties": 1
               },
               "openapiVer": {
                  "description": "The value of the `openapi` or `swagger` property of the source definition",
                  "type": "string"
               }
            },
            "additionalProperties": false
         },
         "Metrics": {
            "description": "List of basic metrics",
            "type": "object",
            "required": [
               "numSpecs",
               "numAPIs",
               "numEndpoints"
            ],
            "properties": {
               "numSpecs": {
                  "description": "Number of API definitions including different versions of the same API",
                  "type": "integer",
                  "minimum": 1
               },
               "numAPIs": {
                  "description": "Number of unique APIs",
                  "type": "integer",
                  "minimum": 1
               },
               "numEndpoints": {
                  "description": "Total number of endpoints inside all definitions",
                  "type": "integer",
                  "minimum": 1
               },
               "unreachable": {
                  "description": "Number of unreachable (4XX,5XX status) APIs",
                  "type": "integer"
               },
               "invalid": {
                  "description": "Number of newly invalid APIs",
                  "type": "integer"
               },
               "unofficial": {
                  "description": "Number of unofficial APIs",
                  "type": "integer"
               },
               "fixes": {
                  "description": "Total number of fixes applied across all APIs",
                  "type": "integer"
               },
               "fixedPct": {
                  "description": "Percentage of all APIs where auto fixes have been applied",
                  "type": "integer"
               },
               "datasets": {
                  "description": "Data used for charting etc",
                  "type": "array",
                  "items": {}
               },
               "stars": {
                  "description": "GitHub stars for our main repo",
                  "type": "integer"
               },
               "issues": {
                  "description": "Open GitHub issues on our main repo",
                  "type": "integer"
               },
               "thisWeek": {
                  "description": "Summary totals for the last 7 days",
                  "type": "object",
                  "properties": {
                     "added": {
                        "description": "APIs added in the last week",
                        "type": "integer"
                     },
                     "updated": {
                        "description": "APIs updated in the last week",
                        "type": "integer"
                     }
                  }
               },
               "numDrivers": {
                  "description": "Number of methods of API retrieval",
                  "type": "integer"
               },
               "numProviders": {
                  "description": "Number of API providers in directory",
                  "type": "integer"
               }
            },
            "additionalProperties": false
         }
      },
      "parameters": {
         "provider": {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
               "type": "string",
               "minLength": 1,
               "maxLength": 255
            }
         },
         "api": {
            "name": "api",
            "in": "path",
            "required": true,
            "schema": {
               "type": "string",
               "minLength": 1,
               "maxLength": 255
            }
         }
      }
   }
}