Probe-Info Service API

Download OpenAPI specification:Download

Mozilla's probe-scraper machinery stores its output as JSON files in S3, exposed to the web under probeinfo.telemetry.mozilla.org. These API docs are automatically generated from the schema definitions in probe-scraper.

The repositories.yaml Library Format

library_name
required
string (LibraryName)

A unique identifier for this library, applicable across all variants of it.

description
required
string (Description)

A brief free-text description of this application variant.

notification_emails
required
Array of strings <email> (NotificationEmails) [ items <email > ]

Where emails about probe-scraper failures and improper files will be forwarded to. These will be just about your specific repository.

url
required
string <uri> (RepoUrl)

The URL of the repository to scrape. It should be able to be cloned directly from that URL.

tag_files
Array of strings (TagFiles) [.+\.yaml$]
Default: []

A list of relative paths to tags.yaml files

metrics_files
Array of strings (MetricsFiles) [.+\.yaml$]
Default: []

A list of relative paths to metrics.yaml files in the repo

ping_files
Array of strings (PingFiles) [.+\.yaml$]
Default: []

A list of relative paths to pings.yaml files

required
Array of objects (LibraryVariantsYaml)

Variants of this library.

{
  • "library_name": "glean-core",
  • "description": "string",
  • "notification_emails": [
    ],
  • "tag_files": [ ],
  • "metrics_files": [ ],
  • "ping_files": [ ],
  • "variants": [
    ]
}

The repositories.yaml Application Format

app_name
required
string (AppName) ^[a-z][a-z0-9_]{0,39}$

A lowercase_with_underscores name that is short and unambiguous. It needs to be something that can be used both in a generated table name in BigQuery or as a value in an app_name string field in a derived table. BigQuery users might be using this literal name in a WHERE clause, so it should feel reasonable for that use case. Examples: fenix, firefox_ios.

This is an "end-to-end identifier": wherever there is a field called app_name from probe scraping to user-facing derived tables in BigQuery, it should reflect this exact value.

canonical_app_name
required
string (CanonicalAppName)

How we would formally name this application in marketing copy or in a dashboard. This should not be materialized in ETL, but rather only made available in user-facing views since it may be verbose and it may change over time. Examples: Firefox for Android, Firefox for Android (Legacy Fennec), Firefox for Desktop, Firefox Focus for iOS

This is an "end-to-end identifier": wherever there is a field called canonical_app_name from probe scraping to user-facing derived tables in BigQuery, it should reflect this exact value.

app_description
required
string (AppDescription)

A brief free-text description of an application, applicable across any variants.

This should not be materialized in ETL, but rather only made available in user-facing views since it may be verbose and it may change over time.

example: The desktop version of Firefox

notification_emails
Array of strings <email> (NotificationEmails) [ items <email > ]

Where emails about probe-scraper failures and improper files will be forwarded to. These will be just about your specific repository.

url
required
string <uri> (RepoUrl)

The URL of the repository to scrape. It should be able to be cloned directly from that URL.

branch
string (RepoBranch)
Default: "master"

The branch in the repository to use.

tag_files
Array of strings (TagFiles) [.+\.yaml$]
Default: []

A list of relative paths to tags.yaml files

metrics_files
Array of strings (MetricsFiles) [.+\.yaml$]
Default: []

A list of relative paths to metrics.yaml files in the repo

ping_files
Array of strings (PingFiles) [.+\.yaml$]
Default: []

A list of relative paths to pings.yaml files

dependencies
Array of strings (Dependencies)
Default: []

List of libraries that this application imports. The values here must match a value defined under dependency_name by a library variant.

deprecated
boolean (DeprecatedBool)
Default: false

Set to true if the repo corresponds to a deprecated product or library.

prototype
boolean (PrototypeBool)
Default: false

Set to true if the application is still under development.

object (MozPipelineMetadataDefaults)

Container for per-doctype metadata that can affect how pings are processed in the pipeline.

object (MozPipelineMetadata)

Allows ping level override of metadata values.

skip_documentation
boolean (SkipDocumentationBool)
Default: false

Set to true if the application does not want to show up in automated documentation tools (e.g. the Glean Dictionary).

required
Array of objects

Information for each of the concrete channels that make up this logical application. Most applications will only have a single concrete listing that represents all channels, but Android and iOS applications in particular may need to publish several listings with different app_id values in order to make multiple channels available in their respective app stores. Note that optional fields here are redundant. If a value is specified for a specific channel, it will override any value set at the overall application level.

{
  • "app_name": "firefox_ios",
  • "canonical_app_name": "Firefox for iOS",
  • "app_description": "string",
  • "notification_emails": [
    ],
  • "branch": "master",
  • "tag_files": [ ],
  • "metrics_files": [ ],
  • "ping_files": [ ],
  • "dependencies": [ ],
  • "deprecated": false,
  • "prototype": false,
  • "moz_pipeline_metadata_defaults": {
    },
  • "moz_pipeline_metadata": {
    },
  • "skip_documentation": false,
  • "channels": [
    ]
}

v1 Legacy telemetry endpoints

Telemetry scraping general properties

Provides general properties related to the scraping process.

Responses

Response Schema: application/json
lastUpdate
required
string <date-time>

timestamp when scraping was performed

Response samples

Content type
application/json
{
  • "lastUpdate": "2019-08-24T14:15:22Z"
}

Revision hashes listing

Contains the revision hashes of the changesets for the probe files that were scraped. These hashes are mapped to a human-readable version string.

Responses

Response Schema: application/json
additional property
object

Response samples

Content type
application/json
{
  • "value": {
    }
}

Probe listing

Refer to the Telemetry data collection documentation for a detailed explanation of the field information reported for each probe (e.g. cpp_guard).

path Parameters
channel
required
string

Firefox application channel

Responses

Response Schema: application/json
additional property
object

Response samples

Content type
application/json
{
  • "value": {
    }
}

v1 Glean probeinfo endpoints

Glean repo general properties

Provides general properties related to the scraping process.

path Parameters
v1_name
required
string

v1_name from repositories.yaml

Responses

Response Schema: application/json
lastUpdate
required
string <date-time>

timestamp when scraping was performed

Response samples

Content type
application/json
{
  • "lastUpdate": "2019-08-24T14:15:22Z"
}

Glean repo metrics

path Parameters
v1_name
required
string

v1_name from repositories.yaml

Responses

Response Schema: application/json
additional property
object

Response samples

Content type
application/json
{
  • "value": {
    }
}

Glean repo dependencies

Provides information about the dependencies of an application.

Each entry in the top-level object represents a dependency of the application.

path Parameters
v1_name
required
string

v1_name from repositories.yaml

Responses

Response Schema: application/json
additional property
object

Response samples

Content type
application/json
{
  • "value": {
    }
}

List Glean repositories

Includes both applications and libraries

Responses

Response Schema: application/json
Array
name
string (V1Name) ^[a-z][a-z0-9-]{0,39}$

Identifier used in v1 URI paths that reference a specific repository

app_id
string^[a-z][a-z-]{0,1023}$
description
string
channel
string (AppChannel)
Enum: "release" "beta" "nightly" "esr"

The release channel. If this is not specified, then we assume the application provides a reasonable channel value in client_info.app_channel in its pings.

deprecated
boolean (DeprecatedBool)
Default: false

Set to true if the repo corresponds to a deprecated product or library.

notification_emails
Array of strings <email> (NotificationEmails) [ items <email > ]

Where emails about probe-scraper failures and improper files will be forwarded to. These will be just about your specific repository.

url
string <uri> (RepoUrl)

The URL of the repository to scrape. It should be able to be cloned directly from that URL.

branch
string (RepoBranch)
Default: "master"

The branch in the repository to use.

tag_files
Array of strings (TagFiles) [.+\.yaml$]
Default: []

A list of relative paths to tags.yaml files

metrics_files
Array of strings (MetricsFiles) [.+\.yaml$]
Default: []

A list of relative paths to metrics.yaml files in the repo

ping_files
Array of strings (PingFiles) [.+\.yaml$]
Default: []

A list of relative paths to pings.yaml files

dependencies
Array of strings (Dependencies)
Default: []

List of libraries that this application imports. The values here must match a value defined under dependency_name by a library variant.

library_names
Array of strings (LibraryNames)

All the build-specific library names defined in this repository, used as keys to match with the dependencies values declared by applications. A single repository could present multiple library names for different platforms, thus there may be multiple values here.

prototype
boolean (PrototypeBool)
Default: false

Set to true if the application is still under development.

object (MozPipelineMetadataDefaults)

Container for per-doctype metadata that can affect how pings are processed in the pipeline.

object (MozPipelineMetadata)

Allows ping level override of metadata values.

skip_documentation
boolean (SkipDocumentationBool)
Default: false

Set to true if the application does not want to show up in automated documentation tools (e.g. the Glean Dictionary).

Response samples

Content type
application/json
[
  • {
    }
]

v2 Glean probeinfo endpoints

The v2 API is in-development and subject to change without notice. Do not depend on it in production!

v2 Glean app listings

Flattened view of all Glean app listings (one entry per app_id). No libraries are included, and this will eventually link to new v2 per-app endpoints that include information pulled from dependencies.

The v2 API is in-development and subject to change without notice. Do not depend on it in production!

Responses

Response Schema: application/json
Array
app_id
required
string (AppId) ^[a-z][a-zA-Z0-9._-]{0,1023}$

The app's identifier exactly as it appears in the relevant app store listing (for relevant platforms) or in the app's Glean initialization call (for other platforms). In the case of the Google Play store, it may contain both dots and dashes. For applicable platforms, you should be able to construct an app store URL from this value.

This is an "end-to-end identifier": wherever there is a field called app_id from probe scraping to user-facing derived tables in BigQuery, it should reflect this exact value.

document_namespace
required
string (DocumentNamespace) ^[a-z][a-z-]{0,1023}$

Derived from app_id, this is the lowercase-with-dashes value that appears as the document_namespace element of the submission URI for a ping.

bq_dataset_family
required
string (BqDatasetFamily) ^[a-z][a-z_]{0,1023}$

Derived from app_id, this is the lowercase-with-underscores prefix for the BigQuery datasets where decoded ping data is written by the pipeline.

app_name
required
string (AppName) ^[a-z][a-z0-9_]{0,39}$

A lowercase_with_underscores name that is short and unambiguous. It needs to be something that can be used both in a generated table name in BigQuery or as a value in an app_name string field in a derived table. BigQuery users might be using this literal name in a WHERE clause, so it should feel reasonable for that use case. Examples: fenix, firefox_ios.

This is an "end-to-end identifier": wherever there is a field called app_name from probe scraping to user-facing derived tables in BigQuery, it should reflect this exact value.

canonical_app_name
string (CanonicalAppName)

How we would formally name this application in marketing copy or in a dashboard. This should not be materialized in ETL, but rather only made available in user-facing views since it may be verbose and it may change over time. Examples: Firefox for Android, Firefox for Android (Legacy Fennec), Firefox for Desktop, Firefox Focus for iOS

This is an "end-to-end identifier": wherever there is a field called canonical_app_name from probe scraping to user-facing derived tables in BigQuery, it should reflect this exact value.

app_description
string (AppDescription)

A brief free-text description of an application, applicable across any variants.

This should not be materialized in ETL, but rather only made available in user-facing views since it may be verbose and it may change over time.

example: The desktop version of Firefox

v1_name
required
string (V1Name) ^[a-z][a-z0-9-]{0,39}$

Identifier used in v1 URI paths that reference a specific repository

app_channel
string (AppId) ^[a-z][a-zA-Z0-9._-]{0,1023}$

The app's identifier exactly as it appears in the relevant app store listing (for relevant platforms) or in the app's Glean initialization call (for other platforms). In the case of the Google Play store, it may contain both dots and dashes. For applicable platforms, you should be able to construct an app store URL from this value.

This is an "end-to-end identifier": wherever there is a field called app_id from probe scraping to user-facing derived tables in BigQuery, it should reflect this exact value.

description
string
notification_emails
Array of strings <email> (NotificationEmails) [ items <email > ]

Where emails about probe-scraper failures and improper files will be forwarded to. These will be just about your specific repository.

url
required
string <uri> (RepoUrl)

The URL of the repository to scrape. It should be able to be cloned directly from that URL.

branch
string (RepoBranch)
Default: "master"

The branch in the repository to use.

tag_files
Array of strings (TagFiles) [.+\.yaml$]
Default: []

A list of relative paths to tags.yaml files

metrics_files
Array of strings (MetricsFiles) [.+\.yaml$]
Default: []

A list of relative paths to metrics.yaml files in the repo

ping_files
Array of strings (PingFiles) [.+\.yaml$]
Default: []

A list of relative paths to pings.yaml files

dependencies
Array of strings (Dependencies)
Default: []

List of libraries that this application imports. The values here must match a value defined under dependency_name by a library variant.

deprecated
boolean (DeprecatedBool)
Default: false

Set to true if the repo corresponds to a deprecated product or library.

prototype
boolean (PrototypeBool)
Default: false

Set to true if the application is still under development.

object (MozPipelineMetadataDefaults)

Container for per-doctype metadata that can affect how pings are processed in the pipeline.

object (MozPipelineMetadata)

Allows ping level override of metadata values.

skip_documentation
boolean (SkipDocumentationBool)
Default: false

Set to true if the application does not want to show up in automated documentation tools (e.g. the Glean Dictionary).

Response samples

Content type
application/json
[
  • {
    }
]

v2 Glean library variants

Flattened view of all Glean library variant (one entry per dependency_name).

The v2 API is in-development and subject to change without notice. Do not depend on it in production!

Responses

Response Schema: application/json
Array
library_name
required
string (LibraryName)

A unique identifier for this library, applicable across all variants of it.

description
required
string (Description)

A brief free-text description of this application variant.

notification_emails
required
Array of strings <email> (NotificationEmails) [ items <email > ]

Where emails about probe-scraper failures and improper files will be forwarded to. These will be just about your specific repository.

url
required
string <uri> (RepoUrl)

The URL of the repository to scrape. It should be able to be cloned directly from that URL.

tag_files
Array of strings (TagFiles) [.+\.yaml$]
Default: []

A list of relative paths to tags.yaml files

metrics_files
Array of strings (MetricsFiles) [.+\.yaml$]
Default: []

A list of relative paths to metrics.yaml files in the repo

ping_files
Array of strings (PingFiles) [.+\.yaml$]
Default: []

A list of relative paths to pings.yaml files

v1_name
required
string (V1Name) ^[a-z][a-z0-9-]{0,39}$

Identifier used in v1 URI paths that reference a specific repository

deprecated
boolean (DeprecatedBool)
Default: false

Set to true if the repo corresponds to a deprecated product or library.

branch
string (RepoBranch)
Default: "master"

The branch in the repository to use.

dependency_name
required
string (DependencyName)

Build system-specific name of this dependency, to be referenced by the dependencies section of an application's definition.

Response samples

Content type
application/json
[
  • {
    }
]