API Discovery Service
Provides information about other Google APIs, such as what APIs are available, the resource, and method details for each API
COMMUNITYNO AUTH0 INSTALLS
OpenAPI Specificationv3.0
{
"openapi": "3.0.0",
"servers": [
{
"url": "https://www.googleapis.com/discovery/v1"
}
],
"info": {
"contact": {
"name": "Google",
"url": "https://google.com",
"x-twitter": "youtube"
},
"description": "Provides information about other Google APIs, such as what APIs are available, the resource, and method details for each API.",
"license": {
"name": "Creative Commons Attribution 3.0",
"url": "http://creativecommons.org/licenses/by/3.0/"
},
"termsOfService": "https://developers.google.com/terms/",
"title": "API Discovery Service",
"version": "v1",
"x-apiClientRegistration": {
"url": "https://console.developers.google.com"
},
"x-apisguru-categories": [
"analytics",
"media"
],
"x-logo": {
"url": "https://api.apis.guru/v2/cache/logo/https_www.google.com_images_branding_googlelogo_2x_googlelogo_color_272x92dp.png"
},
"x-origin": [
{
"format": "google",
"url": "https://discovery.googleapis.com/$discovery/rest?version=v1",
"version": "v1"
}
],
"x-providerName": "googleapis.com",
"x-serviceName": "discovery"
},
"externalDocs": {
"url": "https://developers.google.com/discovery/"
},
"tags": [
{
"name": "apis"
}
],
"paths": {
"/apis": {
"get": {
"description": "Retrieve the list of APIs supported at this endpoint.",
"operationId": "discovery.apis.list",
"parameters": [
{
"description": "Only include APIs with the given name.",
"in": "query",
"name": "name",
"schema": {
"type": "string"
}
},
{
"description": "Return only the preferred version of an API.",
"in": "query",
"name": "preferred",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DirectoryList"
}
}
},
"description": "Successful response"
}
},
"tags": [
"apis"
]
},
"parameters": [
{
"$ref": "#/components/parameters/alt"
},
{
"$ref": "#/components/parameters/fields"
},
{
"$ref": "#/components/parameters/key"
},
{
"$ref": "#/components/parameters/oauth_token"
},
{
"$ref": "#/components/parameters/prettyPrint"
},
{
"$ref": "#/components/parameters/quotaUser"
},
{
"$ref": "#/components/parameters/userIp"
}
]
},
"/apis/{api}/{version}/rest": {
"get": {
"description": "Retrieve the description of a particular version of an api.",
"operationId": "discovery.apis.getRest",
"parameters": [
{
"description": "The name of the API.",
"in": "path",
"name": "api",
"required": true,
"schema": {
"type": "string"
}
},
{
"description": "The version of the API.",
"in": "path",
"name": "version",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RestDescription"
}
}
},
"description": "Successful response"
}
},
"tags": [
"apis"
]
},
"parameters": [
{
"$ref": "#/components/parameters/alt"
},
{
"$ref": "#/components/parameters/fields"
},
{
"$ref": "#/components/parameters/key"
},
{
"$ref": "#/components/parameters/oauth_token"
},
{
"$ref": "#/components/parameters/prettyPrint"
},
{
"$ref": "#/components/parameters/quotaUser"
},
{
"$ref": "#/components/parameters/userIp"
}
]
}
},
"components": {
"parameters": {
"alt": {
"description": "Data format for the response.",
"in": "query",
"name": "alt",
"schema": {
"enum": [
"json"
],
"type": "string"
}
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"in": "query",
"name": "fields",
"schema": {
"type": "string"
}
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"in": "query",
"name": "key",
"schema": {
"type": "string"
}
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"in": "query",
"name": "oauth_token",
"schema": {
"type": "string"
}
},
"prettyPrint": {
"description": "Returns response with indentations and line breaks.",
"in": "query",
"name": "prettyPrint",
"schema": {
"type": "boolean"
}
},
"quotaUser": {
"description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
"in": "query",
"name": "quotaUser",
"schema": {
"type": "string"
}
},
"userIp": {
"description": "Deprecated. Please use quotaUser instead.",
"in": "query",
"name": "userIp",
"schema": {
"type": "string"
}
}
},
"schemas": {
"DirectoryList": {
"properties": {
"discoveryVersion": {
"default": "v1",
"description": "Indicate the version of the Discovery API used to generate this doc.",
"type": "string"
},
"items": {
"description": "The individual directory entries. One entry per api/version pair.",
"items": {
"properties": {
"description": {
"description": "The description of this API.",
"type": "string"
},
"discoveryLink": {
"description": "A link to the discovery document.",
"type": "string"
},
"discoveryRestUrl": {
"description": "The URL for the discovery REST document.",
"type": "string"
},
"documentationLink": {
"description": "A link to human readable documentation for the API.",
"type": "string"
},
"icons": {
"description": "Links to 16x16 and 32x32 icons representing the API.",
"properties": {
"x16": {
"description": "The URL of the 16x16 icon.",
"type": "string"
},
"x32": {
"description": "The URL of the 32x32 icon.",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The id of this API.",
"type": "string"
},
"kind": {
"default": "discovery#directoryItem",
"description": "The kind for this response.",
"type": "string"
},
"labels": {
"description": "Labels for the status of this API, such as labs or deprecated.",
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"description": "The name of the API.",
"type": "string"
},
"preferred": {
"description": "True if this version is the preferred version to use.",
"type": "boolean"
},
"title": {
"description": "The title of this API.",
"type": "string"
},
"version": {
"description": "The version of the API.",
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"kind": {
"default": "discovery#directoryList",
"description": "The kind for this response.",
"type": "string"
}
},
"type": "object"
},
"JsonSchema": {
"properties": {
"$ref": {
"description": "A reference to another schema. The value of this property is the \"id\" of another schema.",
"type": "string"
},
"additionalProperties": {
"$ref": "#/components/schemas/JsonSchema",
"description": "If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object."
},
"annotations": {
"description": "Additional information about this property.",
"properties": {
"required": {
"description": "A list of methods for which this property is required on requests.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"description": {
"description": "A description of this object.",
"type": "string"
},
"enum": {
"description": "Values this parameter may take (if it is an enum).",
"items": {
"type": "string"
},
"type": "array"
},
"enumDescriptions": {
"description": "The descriptions for the enums. Each position maps to the corresponding value in the \"enum\" array.",
"items": {
"type": "string"
},
"type": "array"
},
"format": {
"description": "An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23",
"type": "string"
},
"id": {
"description": "Unique identifier for this schema.",
"type": "string"
},
"items": {
"$ref": "#/components/schemas/JsonSchema",
"description": "If this is a schema for an array, this property is the schema for each element in the array."
},
"location": {
"description": "Whether this parameter goes in the query or the path for REST requests.",
"type": "string"
},
"maximum": {
"description": "The maximum value of this parameter.",
"type": "string"
},
"minimum": {
"description": "The minimum value of this parameter.",
"type": "string"
},
"pattern": {
"description": "The regular expression this parameter must conform to. Uses Java 6 regex format: http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html",
"type": "string"
},
"properties": {
"additionalProperties": {
"$ref": "#/components/schemas/JsonSchema",
"description": "A single property of this object. The value is itself a JSON Schema object describing this property."
},
"description": "If this is a schema for an object, list the schema for each property of this object.",
"type": "object"
},
"readOnly": {
"description": "The value is read-only, generated by the service. The value cannot be modified by the client. If the value is included in a POST, PUT, or PATCH request, it is ignored by the service.",
"type": "boolean"
},
"repeated": {
"description": "Whether this parameter may appear multiple times.",
"type": "boolean"
},
"required": {
"description": "Whether the parameter is required.",
"type": "boolean"
},
"type": {
"description": "The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1",
"type": "string"
},
"variant": {
"description": "In a variant data type, the value of one property is used to determine how to interpret the entire entity. Its value must exist in a map of descriminant values to schema names.",
"properties": {
"discriminant": {
"description": "The name of the type discriminant property.",
"type": "string"
},
"map": {
"description": "The map of discriminant value to schema to use for parsing..",
"items": {
"properties": {
"$ref": {
"type": "string"
},
"type_value": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
"type": "object"
},
"RestDescription": {
"properties": {
"auth": {
"description": "Authentication information.",
"properties": {
"oauth2": {
"description": "OAuth 2.0 authentication information.",
"properties": {
"scopes": {
"additionalProperties": {
"description": "The scope value.",
"properties": {
"description": {
"description": "Description of scope.",
"type": "string"
}
},
"type": "object"
},
"description": "Available OAuth 2.0 scopes.",
"type": "object"
}
},
"type": "object"
}
},
"type": "object"
},
"basePath": {
"description": "[DEPRECATED] The base path for REST requests.",
"type": "string"
},
"baseUrl": {
"description": "[DEPRECATED] The base URL for REST requests.",
"type": "string"
},
"batchPath": {
"description": "The path for REST batch requests.",
"type": "string"
},
"canonicalName": {
"description": "Indicates how the API name should be capitalized and split into various parts. Useful for generating pretty class names.",
"type": "string"
},
"description": {
"description": "The description of this API.",
"type": "string"
},
"discoveryVersion": {
"default": "v1",
"description": "Indicate the version of the Discovery API used to generate this doc.",
"type": "string"
},
"documentationLink": {
"description": "A link to human readable documentation for the API.",
"type": "string"
},
"etag": {
"description": "The ETag for this response.",
"readOnly": true,
"type": "string"
},
"exponentialBackoffDefault": {
"description": "Enable exponential backoff for suitable methods in the generated clients.",
"type": "boolean"
},
"features": {
"description": "A list of supported features for this API.",
"items": {
"type": "string"
},
"type": "array"
},
"icons": {
"description": "Links to 16x16 and 32x32 icons representing the API.",
"properties": {
"x16": {
"description": "The URL of the 16x16 icon.",
"type": "string"
},
"x32": {
"description": "The URL of the 32x32 icon.",
"type": "string"
}
},
"type": "object"
},
"id": {
"description": "The ID of this API.",
"type": "string"
},
"kind": {
"default": "discovery#restDescription",
"description": "The kind for this response.",
"type": "string"
},
"labels": {
"description": "Labels for the status of this API, such as labs or deprecated.",
"items": {
"type": "string"
},
"type": "array"
},
"methods": {
"additionalProperties": {
"$ref": "#/components/schemas/RestMethod",
"description": "An individual method description."
},
"description": "API-level methods for this API.",
"type": "object"
},
"name": {
"description": "The name of this API.",
"type": "string"
},
"ownerDomain": {
"description": "The domain of the owner of this API. Together with the ownerName and a packagePath values, this can be used to generate a library for this API which would have a unique fully qualified name.",
"type": "string"
},
"ownerName": {
"description": "The name of the owner of this API. See ownerDomain.",
"type": "string"
},
"packagePath": {
"description": "The package of the owner of this API. See ownerDomain.",
"type": "string"
},
"parameters": {
"additionalProperties": {
"$ref": "#/components/schemas/JsonSchema",
"description": "Description of a single parameter."
},
"description": "Common parameters that apply across all apis.",
"type": "object"
},
"protocol": {
"default": "rest",
"description": "The protocol described by this document.",
"type": "string"
},
"resources": {
"additionalProperties": {
"$ref": "#/components/schemas/RestResource",
"description": "An individual resource description. Contains methods and sub-resources related to this resource."
},
"description": "The resources in this API.",
"type": "object"
},
"revision": {
"description": "The version of this API.",
"type": "string"
},
"rootUrl": {
"description": "The root URL under which all API services live.",
"type": "string"
},
"schemas": {
"additionalProperties": {
"$ref": "#/components/schemas/JsonSchema",
"description": "An individual schema description."
},
"description": "The schemas for this API.",
"type": "object"
},
"servicePath": {
"description": "The base path for all REST requests.",
"type": "string"
},
"title": {
"description": "The title of this API.",
"type": "string"
},
"version": {
"description": "The version of this API.",
"type": "string"
},
"version_module": {
"type": "boolean"
}
},
"type": "object"
},
"RestMethod": {
"properties": {
"description": {
"description": "Description of this method.",
"type": "string"
},
"etagRequired": {
"description": "Whether this method requires an ETag to be specified. The ETag is sent as an HTTP If-Match or If-None-Match header.",
"type": "boolean"
},
"flatPath": {
"description": "The URI path of this REST method in (RFC 6570) format without level 2 features ({+var}). Supplementary to the path property.",
"type": "string"
},
"httpMethod": {
"description": "HTTP method used by this method.",
"type": "string"
},
"id": {
"description": "A unique ID for this method. This property can be used to match methods between different versions of Discovery.",
"type": "string"
},
"mediaUpload": {
"description": "Media upload parameters.",
"properties": {
"accept": {
"description": "MIME Media Ranges for acceptable media uploads to this method.",
"items": {
"type": "string"
},
"type": "array"
},
"maxSize": {
"description": "Maximum size of a media upload, such as \"1MB\", \"2GB\" or \"3TB\".",
"type": "string"
},
"protocols": {
"description": "Supported upload protocols.",
"properties": {
"resumable": {
"description": "Supports the Resumable Media Upload protocol.",
"properties": {
"multipart": {
"default": true,
"description": "True if this endpoint supports uploading multipart media.",
"type": "boolean"
},
"path": {
"description": "The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.",
"type": "string"
}
},
"type": "object"
},
"simple": {
"description": "Supports uploading as a single HTTP request.",
"properties": {
"multipart": {
"default": true,
"description": "True if this endpoint supports upload multipart media.",
"type": "boolean"
},
"path": {
"description": "The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.",
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
}
},
"type": "object"
},
"parameterOrder": {
"description": "Ordered list of required parameters, serves as a hint to clients on how to structure their method signatures. The array is ordered such that the \"most-significant\" parameter appears first.",
"items": {
"type": "string"
},
"type": "array"
},
"parameters": {
"additionalProperties": {
"$ref": "#/components/schemas/JsonSchema",
"description": "Details for a single parameter in this method."
},
"description": "Details for all parameters in this method.",
"type": "object"
},
"path": {
"description": "The URI path of this REST method. Should be used in conjunction with the basePath property at the api-level.",
"type": "string"
},
"request": {
"description": "The schema for the request.",
"properties": {
"$ref": {
"description": "Schema ID for the request schema.",
"type": "string"
},
"parameterName": {
"description": "parameter name.",
"type": "string"
}
},
"type": "object"
},
"response": {
"description": "The schema for the response.",
"properties": {
"$ref": {
"description": "Schema ID for the response schema.",
"type": "string"
}
},
"type": "object"
},
"scopes": {
"description": "OAuth 2.0 scopes applicable to this method.",
"items": {
"type": "string"
},
"type": "array"
},
"supportsMediaDownload": {
"description": "Whether this method supports media downloads.",
"type": "boolean"
},
"supportsMediaUpload": {
"description": "Whether this method supports media uploads.",
"type": "boolean"
},
"supportsSubscription": {
"description": "Whether this method supports subscriptions.",
"type": "boolean"
},
"useMediaDownloadService": {
"description": "Indicates that downloads from this method should use the download service URL (i.e. \"/download\"). Only applies if the method supports media download.",
"type": "boolean"
}
},
"type": "object"
},
"RestResource": {
"properties": {
"methods": {
"additionalProperties": {
"$ref": "#/components/schemas/RestMethod",
"description": "Description for any methods on this resource."
},
"description": "Methods on this resource.",
"type": "object"
},
"resources": {
"additionalProperties": {
"$ref": "#/components/schemas/RestResource",
"description": "Description for any sub-resources on this resource."
},
"description": "Sub-resources on this resource.",
"type": "object"
}
},
"type": "object"
}
}
}
}