Google Pay Media API

The media API from Google Pay — 2 operation(s) for media.

Operations 2

GET /walletobjects/v1/transitObject/{resourceId}/downloadRotatingBarcodeValues Walletobjects media download #
POST /walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues Walletobjects media upload #

Work with this as data

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 Specification

google-pay-media-api-openapi.yml Raw ↑
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