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-genericclass-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 Genericclass 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: genericclass
paths:
/walletobjects/v1/genericClass:
get:
operationId: walletobjects.genericclass.list
description: Returns a list of all generic classes for a given issuer ID.
tags:
- genericclass
parameters:
- name: issuerId
in: query
schema:
type: string
format: int64
description: The ID of the issuer authorized to list classes.
- name: maxResults
in: query
schema:
type: integer
format: int32
description: Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.
- name: token
in: query
schema:
type: string
description: Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericClassListResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/wallet_object.issuer
summary: Walletobjects genericclass list
x-summary-source: derived
post:
operationId: walletobjects.genericclass.insert
description: Inserts a generic class with the given ID and properties.
tags:
- genericclass
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GenericClass'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericClass'
security:
- oauth2:
- https://www.googleapis.com/auth/wallet_object.issuer
summary: Walletobjects genericclass insert
x-summary-source: derived
/walletobjects/v1/genericClass/{resourceId}:
patch:
operationId: walletobjects.genericclass.patch
description: Updates the generic class referenced by the given class ID. This method supports patch semantics.
tags:
- genericclass
parameters:
- name: resourceId
in: path
schema:
type: string
description: The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GenericClass'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericClass'
security:
- oauth2:
- https://www.googleapis.com/auth/wallet_object.issuer
summary: Walletobjects genericclass patch
x-summary-source: derived
get:
operationId: walletobjects.genericclass.get
description: Returns the generic class with the given class ID.
tags:
- genericclass
parameters:
- name: resourceId
in: path
schema:
type: string
description: The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericClass'
security:
- oauth2:
- https://www.googleapis.com/auth/wallet_object.issuer
summary: Walletobjects genericclass get
x-summary-source: derived
put:
operationId: walletobjects.genericclass.update
description: Updates the Generic class referenced by the given class ID.
tags:
- genericclass
parameters:
- name: resourceId
in: path
schema:
type: string
description: The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GenericClass'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericClass'
security:
- oauth2:
- https://www.googleapis.com/auth/wallet_object.issuer
summary: Walletobjects genericclass update
x-summary-source: derived
/walletobjects/v1/genericClass/{resourceId}/addMessage:
post:
operationId: walletobjects.genericclass.addmessage
description: Adds a message to the generic class referenced by the given class ID.
tags:
- genericclass
parameters:
- name: resourceId
in: path
schema:
type: string
description: The unique identifier for a class. This ID must be unique across all classes 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/AddMessageRequest'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/GenericClassAddMessageResponse'
security:
- oauth2:
- https://www.googleapis.com/auth/wallet_object.issuer
summary: Walletobjects genericclass addmessage
x-summary-source: derived
components:
schemas:
TimeInterval:
type: object
properties:
kind:
type: string
description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#timeInterval"`.'
start:
$ref: '#/components/schemas/DateTime'
end:
$ref: '#/components/schemas/DateTime'
MerchantLocation:
type: object
description: Locations of interest for this class or object. Currently, this location is used for geofenced notifications. When a user is within a set radius of this lat/long, and dwells there, Google will trigger a notification. When a user exits this radius, the notification will be hidden.
properties:
latitude:
type: number
format: double
description: The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.
longitude:
type: number
format: double
description: The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.
LinksModuleData:
type: object
properties:
uris:
type: array
description: The list of URIs.
items:
$ref: '#/components/schemas/Uri'
Uri:
type: object
properties:
kind:
type: string
description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#uri"`.'
id:
type: string
description: The ID associated with a uri. This field is here to enable ease of management of uris.
localizedDescription:
$ref: '#/components/schemas/LocalizedString'
uri:
type: string
description: The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.
description:
type: string
description: The URI's title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.
CallbackOptions:
type: object
properties:
url:
type: string
description: The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Googlebot.
updateRequestUrl:
type: string
description: URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Googlebot. Deprecated.
CardTemplateOverride:
type: object
properties:
cardRowTemplateInfos:
type: array
description: Template information for rows in the card view. At most three rows are allowed to be specified.
items:
$ref: '#/components/schemas/CardRowTemplateInfo'
TemplateItem:
type: object
properties:
predefinedItem:
type: string
description: A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.
enum:
- PREDEFINED_ITEM_UNSPECIFIED
- FREQUENT_FLYER_PROGRAM_NAME_AND_NUMBER
- frequentFlyerProgramNameAndNumber
- FLIGHT_NUMBER_AND_OPERATING_FLIGHT_NUMBER
- flightNumberAndOperatingFlightNumber
firstValue:
$ref: '#/components/schemas/FieldSelector'
secondValue:
$ref: '#/components/schemas/FieldSelector'
ImageModuleData:
type: object
properties:
id:
type: string
description: The ID associated with an image module. This field is here to enable ease of management of image modules.
mainImage:
$ref: '#/components/schemas/Image'
ModuleViewConstraints:
type: object
description: Constraints that all must be met for the module to be shown.
properties:
displayInterval:
$ref: '#/components/schemas/TimeInterval'
AppLinkDataAppLinkInfoAppTarget:
type: object
properties:
packageName:
type: string
description: 'Package name for AppTarget. For example: com.google.android.gm'
targetUri:
$ref: '#/components/schemas/Uri'
CardBarcodeSectionDetails:
type: object
properties:
firstBottomDetail:
$ref: '#/components/schemas/BarcodeSectionDetail'
firstTopDetail:
$ref: '#/components/schemas/BarcodeSectionDetail'
secondTopDetail:
$ref: '#/components/schemas/BarcodeSectionDetail'
GenericClass:
type: object
description: Generic Class
properties:
linksModuleData:
$ref: '#/components/schemas/LinksModuleData'
redemptionIssuers:
type: array
description: Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.
items:
type: string
format: int64
messages:
type: array
description: An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.
items:
$ref: '#/components/schemas/Message'
merchantLocations:
type: array
description: Merchant locations. There is a maximum of ten on the class. Any additional MerchantLocations added beyond the 10 will be rejected. These locations will trigger a notification when a user enters within a Google-set radius of the point. This field replaces the deprecated LatLongPoints.
items:
$ref: '#/components/schemas/MerchantLocation'
textModulesData:
type: array
description: Text module data. If `textModulesData` is also defined on the object, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.
items:
$ref: '#/components/schemas/TextModuleData'
imageModulesData:
type: array
description: Image module data. If `imageModulesData` is also defined on the object, both will be displayed. Only one of the image from class and one from object level will be rendered when both set.
items:
$ref: '#/components/schemas/ImageModuleData'
valueAddedModuleData:
type: array
description: Optional value added module data. Maximum of fifteen on the class. For a pass only fifteen will be displayed, prioritizing those from the object.
items:
$ref: '#/components/schemas/ValueAddedModuleData'
appLinkData:
$ref: '#/components/schemas/AppLinkData'
enableSmartTap:
type: boolean
description: Available only to Smart Tap enabled partners. Contact support for additional guidance.
id:
type: string
description: Required. The unique identifier for the class. This ID must be unique across all from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.
classTemplateInfo:
$ref: '#/components/schemas/ClassTemplateInfo'
callbackOptions:
$ref: '#/components/schemas/CallbackOptions'
multipleDevicesAndHoldersAllowedStatus:
type: string
description: Identifies whether multiple users and devices will save the same object referencing this class.
enum:
- STATUS_UNSPECIFIED
- MULTIPLE_HOLDERS
- ONE_USER_ALL_DEVICES
- ONE_USER_ONE_DEVICE
- multipleHolders
- oneUserAllDevices
- oneUserOneDevice
securityAnimation:
$ref: '#/components/schemas/SecurityAnimation'
viewUnlockRequirement:
type: string
description: View Unlock Requirement options for the generic pass.
enum:
- VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED
- UNLOCK_NOT_REQUIRED
- UNLOCK_REQUIRED_TO_VIEW
GenericClassAddMessageResponse:
type: object
description: Response to adding a new issuer message to the class. This contains the entire updated GenericClass.
properties:
resource:
$ref: '#/components/schemas/GenericClass'
Pagination:
type: object
properties:
kind:
type: string
description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#pagination"`.'
nextPageToken:
type: string
description: Page token to send to fetch the next page.
resultsPerPage:
type: integer
format: int32
description: Number of results returned in this page.
CardRowThreeItems:
type: object
properties:
endItem:
$ref: '#/components/schemas/TemplateItem'
middleItem:
$ref: '#/components/schemas/TemplateItem'
startItem:
$ref: '#/components/schemas/TemplateItem'
ClassTemplateInfo:
type: object
properties:
cardTemplateOverride:
$ref: '#/components/schemas/CardTemplateOverride'
listTemplateOverride:
$ref: '#/components/schemas/ListTemplateOverride'
cardBarcodeSectionDetails:
$ref: '#/components/schemas/CardBarcodeSectionDetails'
detailsTemplateOverride:
$ref: '#/components/schemas/DetailsTemplateOverride'
ValueAddedModuleData:
type: object
description: Data for Value Added module. Required fields are header and uri.
properties:
viewConstraints:
$ref: '#/components/schemas/ModuleViewConstraints'
body:
$ref: '#/components/schemas/LocalizedString'
header:
$ref: '#/components/schemas/LocalizedString'
sortIndex:
type: integer
format: int32
description: The index for sorting the modules. Modules with a lower sort index are shown before modules with a higher sort index. If unspecified, the sort index is assumed to be INT_MAX. For two modules with the same index, the sorting behavior is undefined.
image:
$ref: '#/components/schemas/Image'
uri:
type: string
description: URI that the module leads to on click. This can be a web link or a deep link as mentioned in https://developer.android.com/training/app-links/deep-linking.
CardRowOneItem:
type: object
properties:
item:
$ref: '#/components/schemas/TemplateItem'
Image:
type: object
description: Wrapping type for Google hosted images.
properties:
privateImageId:
type: string
description: An ID for an already uploaded private image. Either this or source_uri should be set. Requests setting both or neither will be rejected. Please contact support to use private images.
sourceUri:
$ref: '#/components/schemas/ImageUri'
kind:
type: string
description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#image"`.'
contentDescription:
$ref: '#/components/schemas/LocalizedString'
FieldReference:
type: object
description: Reference definition to use with field overrides.
properties:
dateFormat:
type: string
description: Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.
enum:
- DATE_FORMAT_UNSPECIFIED
- DATE_TIME
- dateTime
- DATE_ONLY
- dateOnly
- TIME_ONLY
- timeOnly
- DATE_TIME_YEAR
- dateTimeYear
- DATE_YEAR
- dateYear
- YEAR_MONTH
- YEAR_MONTH_DAY
fieldPath:
type: string
description: Path to the field being referenced, prefixed with "object" or "class" and separated with dots. For example, it may be the string "object.purchaseDetails.purchasePrice".
ImageUri:
type: object
properties:
uri:
type: string
description: The location of the image. URIs must have a scheme.
localizedDescription:
$ref: '#/components/schemas/LocalizedString'
description:
type: string
description: Additional information about the image, which is unused and retained only for backward compatibility.
BarcodeSectionDetail:
type: object
properties:
fieldSelector:
$ref: '#/components/schemas/FieldSelector'
AppLinkDataAppLinkInfo:
type: object
properties:
title:
$ref: '#/components/schemas/LocalizedString'
appTarget:
$ref: '#/components/schemas/AppLinkDataAppLinkInfoAppTarget'
appLogoImage:
$ref: '#/components/schemas/Image'
description:
$ref: '#/components/schemas/LocalizedString'
FieldSelector:
type: object
description: Custom field selector to use with field overrides.
properties:
fields:
type: array
description: If more than one reference is supplied, then the first one that references a non-empty field will be displayed.
items:
$ref: '#/components/schemas/FieldReference'
ListTemplateOverride:
type: object
properties:
firstRowOption:
$ref: '#/components/schemas/FirstRowOption'
thirdRowOption:
$ref: '#/components/schemas/FieldSelector'
secondRowOption:
$ref: '#/components/schemas/FieldSelector'
AddMessageRequest:
type: object
description: Resource used when the AddMessage endpoints are called.
properties:
message:
$ref: '#/components/schemas/Message'
CardRowTemplateInfo:
type: object
properties:
twoItems:
$ref: '#/components/schemas/CardRowTwoItems'
threeItems:
$ref: '#/components/schemas/CardRowThreeItems'
oneItem:
$ref: '#/components/schemas/CardRowOneItem'
AppLinkData:
type: object
properties:
androidAppLinkInfo:
$ref: '#/components/schemas/AppLinkDataAppLinkInfo'
iosAppLinkInfo:
$ref: '#/components/schemas/AppLinkDataAppLinkInfo'
displayText:
$ref: '#/components/schemas/LocalizedString'
webAppLinkInfo:
$ref: '#/components/schemas/AppLinkDataAppLinkInfo'
TextModuleData:
type: object
description: Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.
properties:
localizedHeader:
$ref: '#/components/schemas/LocalizedString'
id:
type: string
description: The ID associated with a text module. This field is here to enable ease of management of text modules and referencing them in template overrides. The ID should only include alphanumeric characters, '_', or '-'. It can not include dots, as dots are used to separate fields within FieldReference.fieldPaths in template overrides.
localizedBody:
$ref: '#/components/schemas/LocalizedString'
body:
type: string
description: The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.
header:
type: string
description: The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.
Message:
type: object
description: A message that will be displayed with a Valuable
properties:
messageType:
type: string
description: The message type.
enum:
- MESSAGE_TYPE_UNSPECIFIED
- TEXT
- text
- EXPIRATION_NOTIFICATION
- expirationNotification
- TEXT_AND_NOTIFY
body:
type: string
description: The message body.
id:
type: string
description: The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.
kind:
type: string
description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#walletObjectMessage"`.'
displayInterval:
$ref: '#/components/schemas/TimeInterval'
localizedHeader:
$ref: '#/components/schemas/LocalizedString'
header:
type: string
description: The message header.
localizedBody:
$ref: '#/components/schemas/LocalizedString'
FirstRowOption:
type: object
properties:
fieldOption:
$ref: '#/components/schemas/FieldSelector'
transitOption:
type: string
enum:
- TRANSIT_OPTION_UNSPECIFIED
- ORIGIN_AND_DESTINATION_NAMES
- originAndDestinationNames
- ORIGIN_AND_DESTINATION_CODES
- originAndDestinationCodes
- ORIGIN_NAME
- originName
DetailsTemplateOverride:
type: object
properties:
detailsItemInfos:
type: array
description: Information for the "nth" item displayed in the details list.
items:
$ref: '#/components/schemas/DetailsItemInfo'
DetailsItemInfo:
type: object
properties:
item:
$ref: '#/components/schemas/TemplateItem'
GenericClassListResponse:
type: object
description: List response which contains the list of all generic classes for a given issuer ID.
properties:
resources:
type: array
description: Resources corresponding to the list request.
items:
$ref: '#/components/schemas/GenericClass'
pagination:
$ref: '#/components/schemas/Pagination'
DateTime:
type: object
properties:
date:
type: string
description: 'An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field''s documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user''s time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user''s current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.'
CardRowTwoItems:
type: object
properties:
endItem:
$ref: '#/components/schemas/TemplateItem'
startItem:
$ref: '#/components/schemas/TemplateItem'
SecurityAnimation:
type: object
properties:
animationType:
type: string
description: Type of animation.
enum:
- ANIMATION_UNSPECIFIED
- FOIL_SHIMMER
- foilShimmer
LocalizedString:
type: object
properties:
kind:
type: string
description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#localizedString"`.'
translatedValues:
type: array
description: Contains the translations for the string.
items:
$ref: '#/components/schemas/TranslatedString'
defaultValue:
$ref: '#/components/schemas/TranslatedString'
TranslatedString:
type: object
properties:
language:
type: string
description: Represents the BCP 47 language tag. Example values are "en-US", "en-GB", "de", or "de-AT".
value:
type: string
description: The UTF-8 encoded translated string.
kind:
type: string
description: 'Identifies what kind of resource this is. Value: the fixed string `"walletobjects#translatedString"`.'
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