Firebase Cloud Messaging Data API icon

Firebase Cloud Messaging Data API

Provides additional information about Firebase Cloud Messaging (FCM) message sends and deliveries

COMMUNITYBEARER0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.0",
  "servers": [
    {
      "url": "https://fcmdata.googleapis.com/"
    }
  ],
  "info": {
    "contact": {
      "name": "Google",
      "url": "https://google.com",
      "x-twitter": "youtube"
    },
    "description": "Provides additional information about Firebase Cloud Messaging (FCM) message sends and deliveries.",
    "license": {
      "name": "Creative Commons Attribution 3.0",
      "url": "http://creativecommons.org/licenses/by/3.0/"
    },
    "termsOfService": "https://developers.google.com/terms/",
    "title": "Firebase Cloud Messaging Data API",
    "version": "v1beta1",
    "x-apisguru-categories": [
      "analytics",
      "media"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_upload.wikimedia.org_wikipedia_commons_e_e1_YouTube_play_buttom_icon_%282013-2017%29.svg"
    },
    "x-origin": [
      {
        "format": "google",
        "url": "https://fcmdata.googleapis.com/$discovery/rest?version=v1beta1",
        "version": "v1"
      }
    ],
    "x-providerName": "googleapis.com",
    "x-serviceName": "fcmdata"
  },
  "externalDocs": {
    "url": "https://firebase.google.com/docs/cloud-messaging"
  },
  "tags": [
    {
      "name": "projects"
    }
  ],
  "paths": {
    "/v1beta1/{parent}/deliveryData": {
      "get": {
        "description": "List aggregate delivery data for the given Android application.",
        "operationId": "fcmdata.projects.androidApps.deliveryData.list",
        "parameters": [
          {
            "description": "Required. The application for which to list delivery data. Format: `projects/{project_id}/androidApps/{app_id}`",
            "in": "path",
            "name": "parent",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The maximum number of entries to return. The service may return fewer than this value. If unspecified, at most 1,000 entries will be returned. The maximum value is 10,000; values above 10,000 will be capped to 10,000. This default may change over time.",
            "in": "query",
            "name": "pageSize",
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A page token, received from a previous `ListAndroidDeliveryDataRequest` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAndroidDeliveryDataRequest` must match the call that provided the page token.",
            "in": "query",
            "name": "pageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoogleFirebaseFcmDataV1beta1ListAndroidDeliveryDataResponse"
                }
              }
            },
            "description": "Successful response"
          }
        },
        "security": [
          {
            "Oauth2": [
              "https://www.googleapis.com/auth/cloud-platform"
            ],
            "Oauth2c": [
              "https://www.googleapis.com/auth/cloud-platform"
            ]
          }
        ],
        "tags": [
          "projects"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/_.xgafv"
        },
        {
          "$ref": "#/components/parameters/access_token"
        },
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/fields"
        },
        {
          "$ref": "#/components/parameters/key"
        },
        {
          "$ref": "#/components/parameters/oauth_token"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/quotaUser"
        },
        {
          "$ref": "#/components/parameters/upload_protocol"
        },
        {
          "$ref": "#/components/parameters/uploadType"
        }
      ]
    }
  },
  "components": {
    "parameters": {
      "_.xgafv": {
        "description": "V1 error format.",
        "in": "query",
        "name": "$.xgafv",
        "schema": {
          "enum": [
            "1",
            "2"
          ],
          "type": "string"
        }
      },
      "access_token": {
        "description": "OAuth access token.",
        "in": "query",
        "name": "access_token",
        "schema": {
          "type": "string"
        }
      },
      "alt": {
        "description": "Data format for response.",
        "in": "query",
        "name": "alt",
        "schema": {
          "enum": [
            "json",
            "media",
            "proto"
          ],
          "type": "string"
        }
      },
      "callback": {
        "description": "JSONP",
        "in": "query",
        "name": "callback",
        "schema": {
          "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": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
        "in": "query",
        "name": "quotaUser",
        "schema": {
          "type": "string"
        }
      },
      "uploadType": {
        "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
        "in": "query",
        "name": "uploadType",
        "schema": {
          "type": "string"
        }
      },
      "upload_protocol": {
        "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
        "in": "query",
        "name": "upload_protocol",
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "GoogleFirebaseFcmDataV1beta1AndroidDeliveryData": {
        "description": "Message delivery data for a given date, app, and analytics label combination.",
        "properties": {
          "analyticsLabel": {
            "description": "The analytics label associated with the messages sent. All messages sent without an analytics label will be grouped together in a single entry.",
            "type": "string"
          },
          "appId": {
            "description": "The app ID to which the messages were sent.",
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/GoogleFirebaseFcmDataV1beta1Data",
            "description": "The data for the specified appId, date, and analyticsLabel."
          },
          "date": {
            "$ref": "#/components/schemas/GoogleTypeDate",
            "description": "The date represented by this entry."
          }
        },
        "type": "object"
      },
      "GoogleFirebaseFcmDataV1beta1Data": {
        "description": "Data detailing messaging delivery",
        "properties": {
          "countMessagesAccepted": {
            "description": "Count of messages accepted by FCM intended to Android devices. The targeted device must have opted in to the collection of usage and diagnostic information.",
            "format": "int64",
            "type": "string"
          },
          "deliveryPerformancePercents": {
            "$ref": "#/components/schemas/GoogleFirebaseFcmDataV1beta1DeliveryPerformancePercents",
            "description": "Additional information about delivery performance for messages that were successfully delivered."
          },
          "messageInsightPercents": {
            "$ref": "#/components/schemas/GoogleFirebaseFcmDataV1beta1MessageInsightPercents",
            "description": "Additional general insights about message delivery."
          },
          "messageOutcomePercents": {
            "$ref": "#/components/schemas/GoogleFirebaseFcmDataV1beta1MessageOutcomePercents",
            "description": "Mutually exclusive breakdown of message delivery outcomes."
          }
        },
        "type": "object"
      },
      "GoogleFirebaseFcmDataV1beta1DeliveryPerformancePercents": {
        "description": "Overview of delivery performance for messages that were successfully delivered. All percentages are calculated with countMessagesAccepted as the denominator. These categories are not mutually exclusive; a message can be delayed for multiple reasons.",
        "properties": {
          "delayedDeviceDoze": {
            "description": "The percentage of accepted messages that were delayed because the device was in doze mode. Only [normal priority messages](https://firebase.google.com/docs/cloud-messaging/concept-options#setting-the-priority-of-a-message) should be delayed due to doze mode.",
            "format": "float",
            "type": "number"
          },
          "delayedDeviceOffline": {
            "description": "The percentage of accepted messages that were delayed because the target device was not connected at the time of sending. These messages were eventually delivered when the device reconnected.",
            "format": "float",
            "type": "number"
          },
          "delayedMessageThrottled": {
            "description": "The percentage of accepted messages that were delayed due to message throttling, such as [collapsible message throttling](https://firebase.google.com/docs/cloud-messaging/concept-options#collapsible_throttling) or [maximum message rate throttling](https://firebase.google.com/docs/cloud-messaging/concept-options#device_throttling).",
            "format": "float",
            "type": "number"
          },
          "delayedUserStopped": {
            "description": "The percentage of accepted messages that were delayed because the intended device user-profile was [stopped](https://firebase.google.com/docs/cloud-messaging/android/receive#handling_messages) on the target device at the time of the send. The messages were eventually delivered when the user-profile was started again.",
            "format": "float",
            "type": "number"
          },
          "deliveredNoDelay": {
            "description": "The percentage of accepted messages that were delivered to the device without delay from the FCM system.",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "GoogleFirebaseFcmDataV1beta1ListAndroidDeliveryDataResponse": {
        "description": "Response message for ListAndroidDeliveryData.",
        "properties": {
          "androidDeliveryData": {
            "description": "The delivery data for the provided app. There will be one entry per combination of app, date, and analytics label.",
            "items": {
              "$ref": "#/components/schemas/GoogleFirebaseFcmDataV1beta1AndroidDeliveryData"
            },
            "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"
          }
        },
        "type": "object"
      },
      "GoogleFirebaseFcmDataV1beta1MessageInsightPercents": {
        "description": "Additional information about message delivery. All percentages are calculated with countMessagesAccepted as the denominator.",
        "properties": {
          "priorityLowered": {
            "description": "The percentage of accepted messages that had their priority lowered from high to normal. See [documentation for setting message priority](https://firebase.google.com/docs/cloud-messaging/android/message-priority).",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "GoogleFirebaseFcmDataV1beta1MessageOutcomePercents": {
        "description": "Percentage breakdown of message delivery outcomes. These categories are mutually exclusive. All percentages are calculated with countMessagesAccepted as the denominator. These categories may not account for all message outcomes.",
        "properties": {
          "delivered": {
            "description": "The percentage of all accepted messages that were successfully delivered to the device.",
            "format": "float",
            "type": "number"
          },
          "droppedAppForceStopped": {
            "description": "The percentage of accepted messages that were dropped because the application was force stopped on the device at the time of delivery and retries were unsuccessful.",
            "format": "float",
            "type": "number"
          },
          "droppedDeviceInactive": {
            "description": "The percentage of accepted messages that were dropped because the target device is inactive. FCM will drop messages if the target device is deemed inactive by our servers. If a device does reconnect, we call [OnDeletedMessages()](https://firebase.google.com/docs/cloud-messaging/android/receive#override-ondeletedmessages) in our SDK instead of delivering the messages.",
            "format": "float",
            "type": "number"
          },
          "droppedTooManyPendingMessages": {
            "description": "The percentage of accepted messages that were dropped due to [too many undelivered non-collapsible messages](https://firebase.google.com/docs/cloud-messaging/concept-options#collapsible_and_non-collapsible_messages). Specifically, each app instance can only have 100 pending messages stored on our servers for a device which is disconnected. When that device reconnects, those messages are delivered. When there are more than the maximum pending messages, we call [OnDeletedMessages()](https://firebase.google.com/docs/cloud-messaging/android/receive#override-ondeletedmessages) in our SDK instead of delivering the messages.",
            "format": "float",
            "type": "number"
          },
          "pending": {
            "description": "The percentage of messages accepted on this day that were not dropped and not delivered, due to the device being disconnected (as of the end of the America/Los_Angeles day when the message was sent to FCM). A portion of these messages will be delivered the next day when the device connects but others may be destined to devices that ultimately never reconnect.",
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "GoogleTypeDate": {
        "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp",
        "properties": {
          "day": {
            "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.",
            "format": "int32",
            "type": "integer"
          },
          "month": {
            "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.",
            "format": "int32",
            "type": "integer"
          },
          "year": {
            "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "Oauth2": {
        "description": "Oauth 2.0 implicit authentication",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://accounts.google.com/o/oauth2/auth",
            "scopes": {
              "https://www.googleapis.com/auth/cloud-platform": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
            }
          }
        },
        "type": "oauth2"
      },
      "Oauth2c": {
        "description": "Oauth 2.0 authorizationCode authentication",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://accounts.google.com/o/oauth2/auth",
            "scopes": {
              "https://www.googleapis.com/auth/cloud-platform": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
            },
            "tokenUrl": "https://accounts.google.com/o/oauth2/token"
          }
        },
        "type": "oauth2"
      }
    }
  }
}