Google Chrome Platforms API

The Platforms API from Google Chrome — 4 operation(s) for platforms.

GitHub OpenAPI

Operations 4

GET /v1/{v1Id}/platforms List platforms #
GET /v1/{v1Id}/platforms/{platformsId}/channels List channels #
GET /v1/{v1Id}/platforms/{platformsId}/channels/{channelsId}/versions List versions #
GET /v1/{v1Id}/platforms/{platformsId}/channels/{channelsId}/versions/{versionsId}/releases List releases #

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-chrome:google-chrome-platforms-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-chrome-platforms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: versionhistory.googleapis.com Platforms API
  version: v1
  description: Generated from Google's published Discovery document for versionhistory.googleapis.com API (versionhistory v1, revision 20261110). 4 operation(s).
  contact:
    name: Google
    url: https://developers.google.com/
  termsOfService: https://developers.google.com/terms
servers:
- url: https://versionhistory.googleapis.com
tags:
- name: Platforms
paths:
  /v1/{v1Id}/platforms:
    get:
      operationId: versionhistory.platforms.list
      summary: List platforms
      description: Returns list of platforms that are available for a given product. The resource "product" has no resource name in its name.
      parameters:
      - name: v1Id
        in: path
        required: true
        description: Resource name segment (v1Id).
        schema:
          type: string
      - name: pageSize
        in: query
        required: false
        description: Optional. Optional limit on the number of channels to include in the response. If unspecified, the server will pick an appropriate default.
        schema:
          format: int32
          type: integer
      - name: pageToken
        in: query
        required: false
        description: Optional. A page token, received from a previous `ListChannels` call. Provide this to retrieve the subsequent page.
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPlatformsResponse'
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: Error response (google.rpc.Status)
      security:
      - apiKey: []
      tags:
      - Platforms
  /v1/{v1Id}/platforms/{platformsId}/channels:
    get:
      operationId: versionhistory.platforms.channels.list
      summary: List channels
      description: Returns list of channels that are available for a given platform.
      parameters:
      - name: v1Id
        in: path
        required: true
        description: Resource name segment (v1Id).
        schema:
          type: string
      - name: platformsId
        in: path
        required: true
        description: Resource name segment (platformsId).
        schema:
          type: string
      - name: pageSize
        in: query
        required: false
        description: Optional. Optional limit on the number of channels to include in the response. If unspecified, the server will pick an appropriate default.
        schema:
          format: int32
          type: integer
      - name: pageToken
        in: query
        required: false
        description: Optional. A page token, received from a previous `ListChannels` call. Provide this to retrieve the subsequent page.
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListChannelsResponse'
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: Error response (google.rpc.Status)
      security:
      - apiKey: []
      tags:
      - Platforms
  /v1/{v1Id}/platforms/{platformsId}/channels/{channelsId}/versions:
    get:
      operationId: versionhistory.platforms.channels.versions.list
      summary: List versions
      description: Returns list of version for the given platform/channel.
      parameters:
      - name: v1Id
        in: path
        required: true
        description: Resource name segment (v1Id).
        schema:
          type: string
      - name: platformsId
        in: path
        required: true
        description: Resource name segment (platformsId).
        schema:
          type: string
      - name: channelsId
        in: path
        required: true
        description: Resource name segment (channelsId).
        schema:
          type: string
      - name: filter
        in: query
        required: false
        description: Optional. Filter string. Format is a comma separated list of All comma separated filter clauses are conjoined with a logical "and". Valid field_names are "version", "name", "platform", and "channel". Valid operators are "<", "<=", "=", ">=", and ">". Channel comparison is done by distance from stable. Ex) stable < beta, beta < dev, canary < canary_asan. Version comparison is done numerically. If version is not entirely written, the version will be appended with 0 in missing fields. Ex) version > 80 becoms version > 80.0.0.0 Name and platform are filtered by string comparison. Ex) "...?filter=channel<=beta, version >= 80 Ex) "...?filter=version > 80, version < 81
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        description: 'Optional. Ordering string. Valid order_by strings are "version", "name", "platform", and "channel". Optionally, you can append " desc" or " asc" to specify the sorting order. Multiple order_by strings can be used in a comma separated list. Ordering by channel will sort by distance from the stable channel (not alphabetically). A list of channels sorted in this order is: stable, beta, dev, canary, and canary_asan. Sorting by name may cause unexpected behaviour as it is a naive string sort. For example, 1.0.0.8 will be before 1.0.0.10 in descending order. If order_by is not specified the response will be sorted by version in descending order. Ex) "...?order_by=version asc" Ex) "...?order_by=platform desc, channel, version"'
        schema:
          type: string
      - name: pageSize
        in: query
        required: false
        description: Optional. Optional limit on the number of versions to include in the response. If unspecified, the server will pick an appropriate default.
        schema:
          type: integer
          format: int32
      - name: pageToken
        in: query
        required: false
        description: Optional. A page token, received from a previous `ListVersions` call. Provide this to retrieve the subsequent page.
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVersionsResponse'
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: Error response (google.rpc.Status)
      security:
      - apiKey: []
      tags:
      - Platforms
  /v1/{v1Id}/platforms/{platformsId}/channels/{channelsId}/versions/{versionsId}/releases:
    get:
      operationId: versionhistory.platforms.channels.versions.releases.list
      summary: List releases
      description: Returns list of releases of the given version.
      parameters:
      - name: v1Id
        in: path
        required: true
        description: Resource name segment (v1Id).
        schema:
          type: string
      - name: platformsId
        in: path
        required: true
        description: Resource name segment (platformsId).
        schema:
          type: string
      - name: channelsId
        in: path
        required: true
        description: Resource name segment (channelsId).
        schema:
          type: string
      - name: versionsId
        in: path
        required: true
        description: Resource name segment (versionsId).
        schema:
          type: string
      - name: filter
        in: query
        required: false
        description: Optional. Filter string. Format is a comma separated list of All comma separated filter clauses are conjoined with a logical "and". Valid field_names are "version", "name", "platform", "channel", "fraction" "starttime", and "endtime". Valid operators are "<", "<=", "=", ">=", and ">". Channel comparison is done by distance from stable. must be a valid channel when filtering by channel. Ex) stable < beta, beta < dev, canary < canary_asan. Version comparison is done numerically. Ex) 1.0.0.8 < 1.0.0.10. If version is not entirely written, the version will be appended with 0 for the missing fields. Ex) version > 80 becoms version > 80.0.0.0 When filtering by starttime or endtime, string must be in RFC 3339 date string format. Name and platform are filtered by string comparison. Ex) "...?filter=channel<=beta, version >= 80 Ex) "...?filter=version > 80, version < 81 Ex) "...?filter=starttime>2020-01-01T00:00:00Z
        schema:
          type: string
      - name: orderBy
        in: query
        required: false
        description: 'Optional. Ordering string. Valid order_by strings are "version", "name", "starttime", "endtime", "platform", "channel", and "fraction". Optionally, you can append "desc" or "asc" to specify the sorting order. Multiple order_by strings can be used in a comma separated list. Ordering by channel will sort by distance from the stable channel (not alphabetically). A list of channels sorted in this order is: stable, beta, dev, canary, and canary_asan. Sorting by name may cause unexpected behaviour as it is a naive string sort. For example, 1.0.0.8 will be before 1.0.0.10 in descending order. If order_by is not specified the response will be sorted by starttime in descending order. Ex) "...?order_by=starttime asc" Ex) "...?order_by=platform desc, channel, startime desc"'
        schema:
          type: string
      - name: pageSize
        in: query
        required: false
        description: Optional. Optional limit on the number of releases to include in the response. If unspecified, the server will pick an appropriate default.
        schema:
          type: integer
          format: int32
      - name: pageToken
        in: query
        required: false
        description: Optional. A page token, received from a previous `ListReleases` call. Provide this to retrieve the subsequent page.
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReleasesResponse'
        4XX:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: Error response (google.rpc.Status)
      security:
      - apiKey: []
      tags:
      - Platforms
components:
  schemas:
    ListVersionsResponse:
      type: object
      properties:
        versions:
          type: array
          description: The list of versions.
          items:
            $ref: '#/components/schemas/Version'
        nextPageToken:
          type: string
          description: A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
      description: Response message for ListVersions.
    Platform:
      properties:
        name:
          description: Platform name. Format is "{product}/platforms/{platform}"
          type: string
        platformType:
          enum:
          - PLATFORM_TYPE_UNSPECIFIED
          - WIN
          - WIN64
          - MAC
          - LINUX
          - ANDROID
          - WEBVIEW
          - IOS
          - ALL
          - MAC_ARM64
          - LACROS
          - LACROS_ARM32
          - CHROMEOS
          - LACROS_ARM64
          - FUCHSIA
          - WIN_ARM64
          description: Type of platform.
          type: string
      description: Each Platform is owned by a Product and owns a collection of channels. Available platforms are listed in Platform enum below. Not all Channels are available for every Platform (e.g. CANARY does not exist for LINUX).
      type: object
    Interval:
      properties:
        startTime:
          description: Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.
          type: string
          format: google-datetime
        endTime:
          format: google-datetime
          description: Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.
          type: string
      type: object
      description: Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.
    ListReleasesResponse:
      properties:
        releases:
          items:
            $ref: '#/components/schemas/Release'
          description: The list of releases.
          type: array
        nextPageToken:
          description: A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
          type: string
      description: Response message for ListReleases.
      type: object
    Release:
      type: object
      properties:
        serving:
          $ref: '#/components/schemas/Interval'
          description: Timestamp interval of when the release was live. If end_time is unspecified, the release is currently live.
        version:
          type: string
          description: String containing just the version number. e.g. "84.0.4147.38"
        pinnable:
          type: boolean
          description: Whether or not the release was available for version pinning.
        fractionGroup:
          format: int64
          type: string
          description: 'Rollout fraction group. Only fractions with the same fraction_group are statistically comparable: there may be non-fractional differences between different fraction groups.'
        rolloutData:
          items:
            $ref: '#/components/schemas/RolloutData'
          description: Rollout-related metadata. Some releases are part of one or more A/B rollouts. This field contains the names and data describing this release's role in any rollouts.
          type: array
        name:
          description: Release name. Format is "{product}/platforms/{platform}/channels/{channel}/versions/{version}/releases/{release}"
          type: string
        fraction:
          format: double
          type: number
          description: Rollout fraction. This fraction indicates the fraction of people that should receive this version in this release. If the fraction is not specified in ReleaseManager, the API will assume fraction is 1.
      description: A Release is owned by a Version. A Release contains information about the release(s) of its parent version. This includes when the release began and ended, as well as what percentage it was released at. If the version is released again, or if the serving percentage changes, it will create another release under the version.
    Version:
      properties:
        version:
          type: string
          description: String containing just the version number. e.g. "84.0.4147.38"
        name:
          description: Version name. Format is "{product}/platforms/{platform}/channels/{channel}/versions/{version}" e.g. "chrome/platforms/win/channels/beta/versions/84.0.4147.38"
          type: string
      description: Each Version is owned by a Channel. A Version only displays the Version number (e.g. 84.0.4147.38). A Version owns a collection of releases.
      type: object
    Channel:
      type: object
      description: Each Channel is owned by a Platform and owns a collection of versions. Possible Channels are listed in the Channel enum below. Not all Channels are available for every Platform (e.g. CANARY does not exist for LINUX).
      properties:
        channelType:
          enum:
          - CHANNEL_TYPE_UNSPECIFIED
          - STABLE
          - BETA
          - DEV
          - CANARY
          - CANARY_ASAN
          - ALL
          - EXTENDED
          - LTS
          - LTC
          description: Type of channel.
          type: string
        name:
          type: string
          description: Channel name. Format is "{product}/platforms/{platform}/channels/{channel}"
    ListChannelsResponse:
      type: object
      properties:
        channels:
          type: array
          items:
            $ref: '#/components/schemas/Channel'
          description: The list of channels.
        nextPageToken:
          description: A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
          type: string
      description: Response message for ListChannels.
    GoogleRpcError:
      type: object
      description: The error envelope every Google API returns.
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
            message:
              type: string
            status:
              type: string
            details:
              type: array
              items:
                type: object
    RolloutData:
      description: Rollout-related metadata for a release.
      properties:
        rolloutName:
          description: The name of the rollout.
          type: string
        tag:
          type: array
          items:
            type: string
          description: Tags associated with a release's role in a rollout. Most rollouts will have at least one release with a "rollout" tag and another release with a "control" tag. Some rollouts may have additional named arms.
      type: object
    ListPlatformsResponse:
      properties:
        platforms:
          description: The list of platforms.
          type: array
          items:
            $ref: '#/components/schemas/Platform'
        nextPageToken:
          description: A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.
          type: string
      description: Response message for ListPlatforms.
      type: object
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: key
      description: API key; accepted by methods that do not need user data.
externalDocs:
  url: https://developer.chrome.com/docs/web-platform/versionhistory/guide
x-provenance:
  method: harvested
  publisher: Google
  source: https://versionhistory.googleapis.com/$discovery/rest?version=v1
  note: converted by discovery-to-openapi.py from Google's Discovery document (revision 20261110)