Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/google-pay:google-pay-media-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Google Wallet Media API
version: v1
description: API for issuers to save and manage Google Wallet Objects.
x-revision: '20261104'
x-generated-from: google-discovery-document
x-source: https://walletobjects.googleapis.com/$discovery/rest?version=v1
servers:
- url: https://walletobjects.googleapis.com
security:
- oauth2:
- https://www.googleapis.com/auth/wallet_object.issuer
tags:
- name: Media
paths:
/walletobjects/v1/transitObject/{resourceId}/downloadRotatingBarcodeValues:
get:
operationId: walletobjects.media.download
description: Downloads rotating barcode values for the transit object referenced by the given object ID.
tags:
- Media
parameters:
- name: resourceId
in: path
schema:
type: string
description: The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Media'
security:
- oauth2:
- https://www.googleapis.com/auth/wallet_object.issuer
summary: Walletobjects media download
x-summary-source: derived
/walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues:
post:
operationId: walletobjects.media.upload
description: Uploads rotating barcode values for the transit object referenced by the given object ID. Note the max upload size is specified in google3/production/config/cdd/apps-upload/customers/payments-consumer-passes/config.gcl and enforced by Scotty.
tags:
- Media
parameters:
- name: resourceId
in: path
schema:
type: string
description: The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TransitObjectUploadRotatingBarcodeValuesRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/TransitObjectUploadRotatingBarcodeValuesResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/wallet_object.issuer
x-supportsMediaUpload: true
summary: Walletobjects media upload
x-summary-source: derived
components:
schemas:
ContentTypeInfo:
type: object
description: Detailed Content-Type information from Scotty. The Content-Type of the media will typically be filled in by the header or Scotty's best_guess, but this extended information provides the backend with more information so that it can make a better decision if needed. This is only used on media upload requests from Scotty.
properties:
fromBytes:
type: string
description: The content type of the file derived by looking at specific bytes (i.e. "magic bytes") of the actual file.
fromHeader:
type: string
description: The content type of the file as specified in the request headers, multipart headers, or RUPIO start request.
fromFileName:
type: string
description: The content type of the file derived from the file extension of the original file name used by the client.
bestGuess:
type: string
description: Scotty's best guess of what the content type of the file is.
fromUrlPath:
type: string
description: The content type of the file derived from the file extension of the URL path. The URL path is assumed to represent a file name (which is typically only true for agents that are providing a REST API).
fromFusionId:
type: string
description: The content type of the file detected by Fusion ID. go/fusionid
fusionIdDetectionMetadata:
type: string
format: byte
description: Metadata information from Fusion ID detection. Serialized FusionIdDetectionMetadata proto. Only set if from_fusion_id is set.
TransitObjectUploadRotatingBarcodeValuesRequest:
type: object
description: Request to upload rotating barcode values.
properties:
blob:
$ref: '#/components/schemas/Media'
mediaRequestInfo:
$ref: '#/components/schemas/MediaRequestInfo'
Media:
type: object
description: A reference to data stored on the filesystem, on GFS or in blobstore.
properties:
crc32cHash:
type: integer
format: uint32
description: 'For Scotty Uploads: Scotty-provided hashes for uploads For Scotty Downloads: (WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY TEAM.) A Hash provided by the agent to be used to verify the data being downloaded. Currently only supported for inline payloads. Further, only crc32c_hash is currently supported.'
referenceType:
type: string
description: Describes what the field reference contains.
enum:
- PATH
- BLOB_REF
- INLINE
- GET_MEDIA
- COMPOSITE_MEDIA
- BIGSTORE_REF
- DIFF_VERSION_RESPONSE
- DIFF_CHECKSUMS_RESPONSE
- DIFF_DOWNLOAD_RESPONSE
- DIFF_UPLOAD_REQUEST
- DIFF_UPLOAD_RESPONSE
- COSMO_BINARY_REFERENCE
- ARBITRARY_BYTES
diffChecksumsResponse:
$ref: '#/components/schemas/DiffChecksumsResponse'
diffUploadResponse:
$ref: '#/components/schemas/DiffUploadResponse'
diffVersionResponse:
$ref: '#/components/schemas/DiffVersionResponse'
sha512Hash:
type: string
format: byte
description: Scotty-provided SHA512 hash for an upload.
blobstore2Info:
$ref: '#/components/schemas/Blobstore2Info'
compositeMedia:
type: array
description: 'A composite media composed of one or more media objects, set if reference_type is COMPOSITE_MEDIA. The media length field must be set to the sum of the lengths of all composite media objects. Note: All composite media must have length specified.'
items:
$ref: '#/components/schemas/CompositeMedia'
filename:
type: string
description: Original file name
diffDownloadResponse:
$ref: '#/components/schemas/DiffDownloadResponse'
mediaId:
type: string
format: byte
description: Media id to forward to the operation GetMedia. Can be set if reference_type is GET_MEDIA.
downloadParameters:
$ref: '#/components/schemas/DownloadParameters'
length:
type: string
format: int64
description: Size of the data, in bytes
blobRef:
type: string
format: byte
description: Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating v1, use blobstore2_info instead. For now, any v2 blob will also be represented in this field as v1 BlobRef.
bigstoreObjectRef:
type: string
format: byte
description: Use object_id instead.
diffUploadRequest:
$ref: '#/components/schemas/DiffUploadRequest'
token:
type: string
description: A unique fingerprint/version id for the media data
algorithm:
type: string
description: Deprecated, use one of explicit hash type fields instead. Algorithm used for calculating the hash. As of 2011/01/21, "MD5" is the only possible value for this field. New values may be added at any time.
contentType:
type: string
description: MIME type of the data
sha256Hash:
type: string
format: byte
description: Scotty-provided SHA256 hash for an upload.
timestamp:
type: string
format: int64
description: Time at which the media data was last updated, in milliseconds since UNIX epoch
sha1Hash:
type: string
format: byte
description: Scotty-provided SHA1 hash for an upload.
isPotentialRetry:
type: boolean
description: '|is_potential_retry| is set false only when Scotty is certain that it has not sent the request before. When a client resumes an upload, this field must be set true in agent calls, because Scotty cannot be certain that it has never sent the request before due to potential failure in the session state persistence.'
cosmoBinaryReference:
type: string
format: byte
description: A binary data reference for a media download. Serves as a technology-agnostic binary reference in some Google infrastructure. This value is a serialized storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get around the fact that the cosmo proto (as well as others it includes) doesn't support JavaScript. This prevents us from including the actual type of this field.
objectId:
$ref: '#/components/schemas/ObjectId'
inline:
type: string
format: byte
description: Media data, set if reference_type is INLINE
path:
type: string
description: Path to the data, set if reference_type is PATH
md5Hash:
type: string
format: byte
description: Scotty-provided MD5 hash for an upload.
hash:
type: string
description: 'Deprecated, use one of explicit hash type fields instead. These two hash related fields will only be populated on Scotty based media uploads and will contain the content of the hash group in the NotificationRequest: http://cs/#google3/blobstore2/api/scotty/service/proto/upload_listener.proto&q=class:Hash Hex encoded hash value of the uploaded media.'
contentTypeInfo:
$ref: '#/components/schemas/ContentTypeInfo'
hashVerified:
type: boolean
description: For Scotty uploads only. If a user sends a hash code and the backend has requested that Scotty verify the upload against the client hash, Scotty will perform the check on behalf of the backend and will reject it if the hashes don't match. This is set to true if Scotty performed this verification.
CompositeMedia:
type: object
description: A sequence of media data references representing composite data. Introduced to support Bigstore composite objects. For details, visit http://go/bigstore-composites.
properties:
inline:
type: string
format: byte
description: Media data, set if reference_type is INLINE
path:
type: string
description: Path to the data, set if reference_type is PATH
crc32cHash:
type: integer
format: uint32
description: crc32.c hash for the payload.
objectId:
$ref: '#/components/schemas/ObjectId'
md5Hash:
type: string
format: byte
description: MD5 hash for the payload.
length:
type: string
format: int64
description: Size of the data, in bytes
blobstore2Info:
$ref: '#/components/schemas/Blobstore2Info'
blobRef:
type: string
format: byte
description: Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating v1, use blobstore2_info instead. For now, any v2 blob will also be represented in this field as v1 BlobRef.
referenceType:
type: string
description: Describes what the field reference contains.
enum:
- PATH
- BLOB_REF
- INLINE
- BIGSTORE_REF
- COSMO_BINARY_REFERENCE
sha1Hash:
type: string
format: byte
description: SHA-1 hash for the payload.
cosmoBinaryReference:
type: string
format: byte
description: A binary data reference for a media download. Serves as a technology-agnostic binary reference in some Google infrastructure. This value is a serialized storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get around the fact that the cosmo proto (as well as others it includes) doesn't support JavaScript. This prevents us from including the actual type of this field.
DiffVersionResponse:
type: object
description: Backend response for a Diff get version response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.
properties:
objectSizeBytes:
type: string
format: int64
description: The total size of the server object.
objectVersion:
type: string
description: The version of the object stored at the server.
DiffUploadResponse:
type: object
description: Backend response for a Diff upload request. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.
properties:
objectVersion:
type: string
description: The object version of the object at the server. Must be included in the end notification response. The version in the end notification response must correspond to the new version of the object that is now stored at the server, after the upload.
originalObject:
$ref: '#/components/schemas/CompositeMedia'
DiffChecksumsResponse:
type: object
description: Backend response for a Diff get checksums response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.
properties:
objectVersion:
type: string
description: The object version of the object the checksums are being returned for.
objectLocation:
$ref: '#/components/schemas/CompositeMedia'
chunkSizeBytes:
type: string
format: int64
description: The chunk size of checksums. Must be a multiple of 256KB.
checksumsLocation:
$ref: '#/components/schemas/CompositeMedia'
objectSizeBytes:
type: string
format: int64
description: The total size of the server object.
ObjectId:
type: object
description: This is a copy of the tech.blob.ObjectId proto, which could not be used directly here due to transitive closure issues with JavaScript support; see http://b/8801763.
properties:
bucketName:
type: string
description: The name of the bucket to which this object belongs.
objectName:
type: string
description: The name of the object.
generation:
type: string
format: int64
description: Generation of the object. Generations are monotonically increasing across writes, allowing them to be be compared to determine which generation is newer. If this is omitted in a request, then you are requesting the live object. See http://go/bigstore-versions
DownloadParameters:
type: object
description: Parameters specific to media downloads.
properties:
ignoreRange:
type: boolean
description: Determining whether or not Apiary should skip the inclusion of any Content-Range header on its response to Scotty.
allowGzipCompression:
type: boolean
description: A boolean to be returned in the response to Scotty. Allows/disallows gzip encoding of the payload content when the server thinks it's advantageous (hence, does not guarantee compression) which allows Scotty to GZip the response to the client.
MediaRequestInfo:
type: object
description: Extra information added to operations that support Scotty media requests.
properties:
physicalHeaders:
type: string
format: byte
description: The physical headers provided by RequestReceivedParameters in Scotty request. type is uploader_service.KeyValuePairs.
currentBytes:
type: string
format: int64
description: The number of current bytes uploaded or downloaded.
totalBytes:
type: string
format: int64
description: The total size of the file.
diffObjectVersion:
type: string
description: Set if the http request info is diff encoded. The value of this field is the version number of the base revision. This is corresponding to Apiary's mediaDiffObjectVersion (//depot/google3/java/com/google/api/server/media/variable/DiffObjectVersionVariable.java). See go/esf-scotty-diff-upload for more information.
notificationType:
type: string
description: The type of notification received from Scotty.
enum:
- START
- PROGRESS
- END
- RESPONSE_SENT
- ERROR
requestReceivedParamsServingInfo:
type: string
format: byte
description: The partition of the Scotty server handling this request. type is uploader_service.RequestReceivedParamsServingInfo LINT.IfChange(request_received_params_serving_info_annotations) LINT.ThenChange()
totalBytesIsEstimated:
type: boolean
description: Whether the total bytes field contains an estimated data.
requestId:
type: string
description: The Scotty request ID.
customData:
type: string
description: Data to be copied to backend requests. Custom data is returned to Scotty in the agent_state field, which Scotty will then provide in subsequent upload notifications.
finalStatus:
type: integer
format: int32
description: The existence of the final_status field indicates that this is the last call to the agent for this request_id. http://google3/uploader/agent/scotty_agent.proto?l=737&rcl=347601929
DiffUploadRequest:
type: object
description: A Diff upload request. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.
properties:
objectVersion:
type: string
description: The object version of the object that is the base version the incoming diff script will be applied to. This field will always be filled in.
checksumsInfo:
$ref: '#/components/schemas/CompositeMedia'
objectInfo:
$ref: '#/components/schemas/CompositeMedia'
Blobstore2Info:
type: object
description: Information to read/write to blobstore2.
properties:
downloadReadHandle:
type: string
format: byte
description: Read handle passed from Bigstore -> Scotty for a GCS download. This is a signed, serialized blobstore2.ReadHandle proto which must never be set outside of Bigstore, and is not applicable to non-GCS media downloads.
blobGeneration:
type: string
format: int64
description: The blob generation id.
blobId:
type: string
description: The blob id, e.g., /blobstore/prod/playground/scotty
uploadMetadataContainer:
type: string
format: byte
description: Metadata passed from Blobstore -> Scotty for a new GCS upload. This is a signed, serialized blobstore2.BlobMetadataContainer proto which must never be consumed outside of Bigstore, and is not applicable to non-GCS media uploads.
uploadFragmentListCreationInfo:
type: string
format: byte
description: A serialized Object Fragment List Creation Info passed from Bigstore -> Scotty for a GCS upload. This field must never be consumed outside of Bigstore, and is not applicable to non-GCS media uploads.
downloadExternalReadToken:
type: string
format: byte
description: A serialized External Read Token passed from Bigstore -> Scotty for a GCS download. This field must never be consumed outside of Bigstore, and is not applicable to non-GCS media uploads.
readToken:
type: string
description: The blob read token. Needed to read blobs that have not been replicated. Might not be available until the final call.
DiffDownloadResponse:
type: object
description: Backend response for a Diff download response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.
properties:
objectLocation:
$ref: '#/components/schemas/CompositeMedia'
TransitObjectUploadRotatingBarcodeValuesResponse:
type: object
description: Response for uploading rotating barcode values.
properties: {}
securitySchemes:
oauth2:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://accounts.google.com/o/oauth2/auth
tokenUrl: https://oauth2.googleapis.com/token
scopes:
https://www.googleapis.com/auth/wallet_object.issuer: 'Private Service: https://www.googleapis.com/auth/wallet_object.issuer'
externalDocs:
url: https://developers.google.com/pay/passes