Resources¶
Resources are simple objects supporting CRUD operations. Read operations can be done anonymously. Creating and updating require account permissions, and deleting requires admin account permissions.
Browsers¶
A browser is a brand of web client that has one or more versions. This
follows most users’ understanding of browsers, i.e., firefox_desktop
represents desktop Firefox, safari_desktop
represents desktop Safari, and
firefox_android
represents Firefox on Android.
The browsers representation includes:
- attributes
- id (server selected) - Database ID
- slug (write-once) - Unique, human-friendly slug
- name (localized) - Browser name
- note (localized) - Notes, intended for related data like OS, applicable device, engines, etc.
- relationships
- versions (many) - Associated versions, ordered roughly from earliest to latest. User can change the order.
- history_current (one) - Current historical_browsers. Can be set to a value from history to revert changes.
- history (many) - Associated historical_browsers in time order (most recent first). Changes are ignored.
Note: bug 1078699 is proposing that select users will be able to modify slugs
An example browser resource:
{
"links": {
"self": "https://browsercompat.org/api/v2/browsers/7"
},
"data": {
"type": "browsers",
"id": "7",
"attributes": {
"slug": "firefox_desktop",
"name": {
"en": "Firefox for Desktop"
},
"note": null
},
"relationships": {
"versions": {
"links": {
"self": "https://browsercompat.org/api/v2/browsers/7/relationships/versions",
"related": "https://browsercompat.org/api/v2/browsers/7/versions"
},
"data": [
{
"type": "versions",
"id": "17"
},
{
"type": "versions",
"id": "18"
},
{
"type": "versions",
"id": "19"
},
{
"type": "versions",
"id": "20"
},
{
"type": "versions",
"id": "21"
}
]
},
"history_current": {
"links": {
"self": "https://browsercompat.org/api/v2/browsers/7/relationships/history_current",
"related": "https://browsercompat.org/api/v2/browsers/7/history_current"
},
"data": {
"type": "historical_browsers",
"id": "7"
}
},
"history": {
"links": {
"self": "https://browsercompat.org/api/v2/browsers/7/relationships/history",
"related": "https://browsercompat.org/api/v2/browsers/7/history"
},
"data": [
{
"type": "historical_browsers",
"id": "7"
}
]
}
}
}
}
Versions¶
A version is a specific release of a Browser.
The versions representation includes:
- attributes
- id (server selected) - Database ID
- version (write-once) - Version of browser. Numeric or text string, depending on the status (see table below).
- release_day - Day that browser was released in ISO 8601 format, or null if unknown.
- retirement_day - Approximate day the browser was “retired” (stopped being a current browser), in ISO 8601 format, or null if unknown.
- status - One of
beta
,current
,future
,retired-beta
,retired
, orunknown
(see table below). - release_notes_uri (localized) - URI of release notes for this version, or null if none.
- note (localized) - Engine, OS, etc. information, or null
- order (read-only) - The relative order among versions for this browser. The order can be changed on the browser resource.
- relationships
- browser - The related browser
- supports (many) - Associated supports, in ID order. Changes are ignored; work on the supports to add, change, or remove.
- history_current (one) - Current historical_versions. Set to a value from history to revert to that version.
- history (many) - Associated historical_versions, in time order (most recent first). Changes are ignored.
The version is either a numeric value, such as "11.0"
, or text, such as
"Nightly"
. The version format depends on the chosen status:
Status | Version | Meaning |
---|---|---|
beta |
numeric | A release candidate suggested for early adopters or testers |
current |
numeric or the text "current" |
A current and preferred release for most users |
future |
text such as "Nightly" |
A named but unnumbered future release |
retired-beta |
numeric | An old beta version, replaced by a new beta or release |
retired |
numeric | An old released version no longer recommended for users |
unknown |
numeric | A release with an unknown status |
An example version resource:
{
"links": {
"self": "https://browsercompat.org/api/v2/versions/21"
},
"data": {
"type": "versions",
"id": "21",
"attributes": {
"version": "16.0",
"release_day": "2012-10-09",
"retirement_day": "2012-11-20",
"status": "retired",
"release_notes_uri": {
"en": "https://developer.mozilla.org/en/Firefox/Releases/16",
"de": "https://developer.mozilla.org/de/Firefox/Releases/16",
"es": "https://developer.mozilla.org/es/Firefox/Releases/16",
"fr": "https://developer.mozilla.org/fr/Firefox/Versions/16",
"ja": "https://developer.mozilla.org/ja/Firefox/Releases/16",
"ko": "https://developer.mozilla.org/ko/Firefox/Releases/16",
"pl": "https://developer.mozilla.org/pl/Firefox/Releases/16",
"pt-PT": "https://developer.mozilla.org/pt-PT/Firefox/Releases/16",
"ru": "https://developer.mozilla.org/ru/Firefox/Releases/16",
"zh-CN": "https://developer.mozilla.org/zh-CN/Firefox/Releases/16",
"zh-TW": "https://developer.mozilla.org/zh-TW/Firefox/Releases/16"
},
"note": null,
"order": 4
},
"relationships": {
"browser": {
"links": {
"self": "https://browsercompat.org/api/v2/versions/21/relationships/browser",
"related": "https://browsercompat.org/api/v2/versions/21/browser"
},
"data": {
"type": "browsers",
"id": "7"
}
},
"supports": {
"links": {
"self": "https://browsercompat.org/api/v2/versions/21/relationships/supports",
"related": "https://browsercompat.org/api/v2/versions/21/supports"
},
"data": [
{
"type": "supports",
"id": "12"
},
{
"type": "supports",
"id": "22"
}
]
},
"history_current": {
"links": {
"self": "https://browsercompat.org/api/v2/versions/21/relationships/history_current",
"related": "https://browsercompat.org/api/v2/versions/21/history_current"
},
"data": {
"type": "historical_versions",
"id": "21"
}
},
"history": {
"links": {
"self": "https://browsercompat.org/api/v2/versions/21/relationships/history",
"related": "https://browsercompat.org/api/v2/versions/21/history"
},
"data": [
{
"type": "historical_versions",
"id": "21"
}
]
}
}
}
}
Features¶
A feature is a web technology. This could be a precise technology, such
as the value cover
for the CSS background-size
property. It could be
a hierarchical group of related technologies, such as the CSS
background-size
property or the set of all CSS properties. Some features
correspond to a page on MDN, which will display the list of specifications
and a browser compatibility table of the sub-features.
The features representation includes:
- attributes
- id (server selected) - Database ID
- slug (write-once) - Unique, human-friendly slug
- mdn_uri (optional, localized) - The URI of the language-specific MDN page that this feature was first scraped from. If the path contains unicode, it should be percent-encoded as in RFC 3987. May be used in UX or for debugging import scripts.
- experimental - True if a feature is considered experimental, such as being non-standard or part of an non-ratified spec.
- standardized - True if a feature is described in a standards-track spec, regardless of the spec’s maturity.
- stable - True if a feature is considered suitable for production websites.
- obsolete - True if a feature should not be used in new development.
- name (canonical or localized) - Feature name. If the name is the
code used by a developer, then the value is a string, and should be
wrapped in a
<code>
block when displayed. If the name is a description of the feature, then the value is the available translations, including at least anen
translation, and may include HTML markup. For example,"display"
and"display: none"
are canonical names for the CSS display property and one of the values for that property, while"Basic support"
,"<code>none, inline</code> and <code>block</code>"
, and"CSS Properties"
are non-canonical names that should be translated.
- relationships
- sections (many) - Associated sections. Order can be changed by the user.
- supports (many) - Associated supports, Order is in ID order, changes are ignored.
- parent (one or null) - The feature one level up, or null if top-level. Can be changed by user.
- children (many) - The features that have this feature as parent, in display order. Can be an empty list, for “leaf” features. Can be re-ordered by the user.
- history_current (one) - Current historical_features. User can set to a valid history to revert to that version.
- history (many) - Associated historical_features, in time order (most recent first). Changes are ignored.
Note: bug 1240785 is proposing that the slug is replaced with a list of optional aliases
Here is an example of a leaf feature with a translated name:
{
"links": {
"self": "https://browsercompat.org/api/v2/features/12"
},
"data": {
"type": "features",
"id": "12",
"attributes": {
"slug": "web-css-transform-three-value-syntax",
"mdn_uri": null,
"experimental": false,
"standardized": true,
"stable": true,
"obsolete": false,
"name": {
"en": "Three-value syntax",
"es": "Sintaxis con tres valores",
"ja": "3-値構文"
}
},
"relationships": {
"parent": {
"links": {
"self": "https://browsercompat.org/api/v2/features/12/relationships/parent",
"related": "https://browsercompat.org/api/v2/features/12/parent"
},
"data": {
"type": "features",
"id": "10"
}
},
"children": {
"links": {
"self": "https://browsercompat.org/api/v2/features/12/relationships/children",
"related": "https://browsercompat.org/api/v2/features/12/children"
},
"data": []
},
"references": {
"links": {
"self": "https://browsercompat.org/api/v2/features/12/relationships/references",
"related": "https://browsercompat.org/api/v2/features/12/references"
},
"data": []
},
"supports": {
"links": {
"self": "https://browsercompat.org/api/v2/features/12/relationships/supports",
"related": "https://browsercompat.org/api/v2/features/12/supports"
},
"data": [
{
"type": "supports",
"id": "20"
},
{
"type": "supports",
"id": "21"
},
{
"type": "supports",
"id": "22"
},
{
"type": "supports",
"id": "23"
},
{
"type": "supports",
"id": "24"
},
{
"type": "supports",
"id": "25"
},
{
"type": "supports",
"id": "26"
}
]
},
"history_current": {
"links": {
"self": "https://browsercompat.org/api/v2/features/12/relationships/history_current",
"related": "https://browsercompat.org/api/v2/features/12/history_current"
},
"data": {
"type": "historical_features",
"id": "12"
}
},
"history": {
"links": {
"self": "https://browsercompat.org/api/v2/features/12/relationships/history",
"related": "https://browsercompat.org/api/v2/features/12/history"
},
"data": [
{
"type": "historical_features",
"id": "12"
}
]
}
}
}
}
Here is an example of a branch feature with a canonical name (the parent of the previous example):
{
"links": {
"self": "https://browsercompat.org/api/v2/features/10"
},
"data": {
"type": "features",
"id": "10",
"attributes": {
"slug": "web-css-transform-origin",
"mdn_uri": {
"en": "https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin",
"es": "https://developer.mozilla.org/es/docs/Web/CSS/transform-origin",
"fr": "https://developer.mozilla.org/fr/docs/Web/CSS/transform-origin",
"ja": "https://developer.mozilla.org/ja/docs/Web/CSS/transform-origin"
},
"experimental": false,
"standardized": true,
"stable": true,
"obsolete": false,
"name": "transform-origin"
},
"relationships": {
"parent": {
"links": {
"self": "https://browsercompat.org/api/v2/features/10/relationships/parent",
"related": "https://browsercompat.org/api/v2/features/10/parent"
},
"data": {
"type": "features",
"id": "2"
}
},
"children": {
"links": {
"self": "https://browsercompat.org/api/v2/features/10/relationships/children",
"related": "https://browsercompat.org/api/v2/features/10/children"
},
"data": [
{
"type": "features",
"id": "11"
},
{
"type": "features",
"id": "12"
}
]
},
"references": {
"links": {
"self": "https://browsercompat.org/api/v2/features/10/relationships/references",
"related": "https://browsercompat.org/api/v2/features/10/references"
},
"data": [
{
"type": "references",
"id": "4"
}
]
},
"supports": {
"links": {
"self": "https://browsercompat.org/api/v2/features/10/relationships/supports",
"related": "https://browsercompat.org/api/v2/features/10/supports"
},
"data": []
},
"history_current": {
"links": {
"self": "https://browsercompat.org/api/v2/features/10/relationships/history_current",
"related": "https://browsercompat.org/api/v2/features/10/history_current"
},
"data": {
"type": "historical_features",
"id": "10"
}
},
"history": {
"links": {
"self": "https://browsercompat.org/api/v2/features/10/relationships/history",
"related": "https://browsercompat.org/api/v2/features/10/history"
},
"data": [
{
"type": "historical_features",
"id": "10"
}
]
}
}
}
}
Supports¶
A support is an assertion that a particular Version of a Browser supports (or does not support) a feature.
The support representation includes:
- attributes
- id (server selected) - Database ID
- support - Assertion of support of the version for the
feature, one of
"yes"
,"no"
,"partial"
, or"unknown"
- prefix - Prefix used to enable support, such as “moz”
- prefix_mandatory - True if the prefix is required
- alternate_name - An alternate name associated with this feature,
such as
"RTCPeerConnectionIdentityEvent"
- alternate_name_mandatory - True if the alternate name is required
- requires_config - A configuration string
required to enable the feature, such as
"media.peerconnection.enabled=on"
- default_config - The configuration string in the shipping
browser, such as
"media.peerconnection.enabled=off"
- protected - True if the feature requires additional steps to enable in order to protect the user’s security or privacy, such as geolocation and the Bluetooth API.
- note (localized) - Note on support, designed for display after a compatibility table, can contain HTML
- relationships
- version (one) - The associated version. Cannot be changed by the user after creation.
- feature (one) - The associated feature. Cannot be changed by the user after creation. The version and feature combo must be unique.
- history_current (one) - Current historical_supports. Can be changed to a valid history to revert to that version.
- history (many) - Associated historical_supports in time order (most recent first). Changes are ignored.
Here is a sample support:
{
"links": {
"self": "https://browsercompat.org/api/v2/supports/22"
},
"data": {
"type": "supports",
"id": "22",
"attributes": {
"support": "yes",
"prefix": null,
"prefix_mandatory": false,
"alternate_name": null,
"alternate_mandatory": false,
"requires_config": null,
"default_config": null,
"protected": false,
"note": null
},
"relationships": {
"version": {
"links": {
"self": "https://browsercompat.org/api/v2/supports/22/relationships/version",
"related": "https://browsercompat.org/api/v2/supports/22/version"
},
"data": {
"type": "versions",
"id": "21"
}
},
"feature": {
"links": {
"self": "https://browsercompat.org/api/v2/supports/22/relationships/feature",
"related": "https://browsercompat.org/api/v2/supports/22/feature"
},
"data": {
"type": "features",
"id": "12"
}
},
"history_current": {
"links": {
"self": "https://browsercompat.org/api/v2/supports/22/relationships/history_current",
"related": "https://browsercompat.org/api/v2/supports/22/history_current"
},
"data": {
"type": "historical_supports",
"id": "22"
}
},
"history": {
"links": {
"self": "https://browsercompat.org/api/v2/supports/22/relationships/history",
"related": "https://browsercompat.org/api/v2/supports/22/history"
},
"data": [
{
"type": "historical_supports",
"id": "22"
}
]
}
}
}
}
Specifications¶
A specification is a standards document that specifies a web technology.
The specification representation includes:
- relationships
- maturity (one) - Associated maturity. Can be changed by the user.
- sections (many) - Associated sections. The order can be changed by the user.
- history_current (one) - Current historical_specifications. Can be changed to a valid history to revert to that version.
- history (many) - Associated historical_specifications in time order (most recent first). Changes are ignored.
Here is a sample specification:
{
"links": {
"self": "https://browsercompat.org/api/v2/specifications/2"
},
"data": {
"type": "specifications",
"id": "2",
"attributes": {
"slug": "css2_1",
"mdn_key": "CSS2.1",
"name": {
"en": "CSS Level 2 (Revision 1)"
},
"uri": {
"en": "http://www.w3.org/TR/CSS2/"
}
},
"relationships": {
"maturity": {
"links": {
"self": "https://browsercompat.org/api/v2/specifications/2/relationships/maturity",
"related": "https://browsercompat.org/api/v2/specifications/2/maturity"
},
"data": {
"type": "maturities",
"id": "1"
}
},
"sections": {
"links": {
"self": "https://browsercompat.org/api/v2/specifications/2/relationships/sections",
"related": "https://browsercompat.org/api/v2/specifications/2/sections"
},
"data": [
{
"type": "sections",
"id": "2"
}
]
},
"history_current": {
"links": {
"self": "https://browsercompat.org/api/v2/specifications/2/relationships/history_current",
"related": "https://browsercompat.org/api/v2/specifications/2/history_current"
},
"data": {
"type": "historical_specifications",
"id": "2"
}
},
"history": {
"links": {
"self": "https://browsercompat.org/api/v2/specifications/2/relationships/history",
"related": "https://browsercompat.org/api/v2/specifications/2/history"
},
"data": [
{
"type": "historical_specifications",
"id": "2"
}
]
}
}
}
}
Sections¶
A section refers to a specific area of a specification document.
The section representation includes:
- attributes
- id (server selected) - Database ID
- number (optional, localized) - The section number
- name (localized) - Section name
- subpath (localized, optional) - A subpage (possibly with an #anchor) to get to the subsection in the doc. Can be empty string.
- relationships
- specification (one) - The specification. Can be changed by the user.
- references (many) - The associated references. In ID order, changes are ignored.
- history_current (one) - Current historical_sections. Can be changed to a valid history to revert to that version.
- history (many) - Associated historical_sections in time order (most recent first). Changes are ignored.
Here is a sample section:
{
"links": {
"self": "https://browsercompat.org/api/v2/sections/3"
},
"data": {
"type": "sections",
"id": "3",
"attributes": {
"number": {
"en": "16"
},
"name": {
"en": "The float property"
},
"subpath": {
"en": "#the-float-property"
}
},
"relationships": {
"references": {
"links": {
"self": "https://browsercompat.org/api/v2/sections/3/relationships/references",
"related": "https://browsercompat.org/api/v2/sections/3/references"
},
"data": [
{
"type": "references",
"id": "3"
}
]
},
"specification": {
"links": {
"self": "https://browsercompat.org/api/v2/sections/3/relationships/specification",
"related": "https://browsercompat.org/api/v2/sections/3/specification"
},
"data": {
"type": "specifications",
"id": "3"
}
},
"history_current": {
"links": {
"self": "https://browsercompat.org/api/v2/sections/3/relationships/history_current",
"related": "https://browsercompat.org/api/v2/sections/3/history_current"
},
"data": {
"type": "historical_sections",
"id": "3"
}
},
"history": {
"links": {
"self": "https://browsercompat.org/api/v2/sections/3/relationships/history",
"related": "https://browsercompat.org/api/v2/sections/3/history"
},
"data": [
{
"type": "historical_sections",
"id": "3"
}
]
}
}
}
}
References¶
A reference ties a specification section to a feature.
The reference representation includes:
- attributes
- id (server selected) - Database ID
- note (localized, optional) - Notes for this reference
- links
- feature (one) - The feature. Can be changed by the user.
- section (one) - The section. Can be changed by the user.
- history_current (one) - Current historical_references. Can be changed to a valid history to revert to that version.
- history (many) - Associated historical_references in time order (most recent first). Changes are ignored.
Here is a sample reference:
{
"links": {
"self": "https://browsercompat.org/api/v2/references/3"
},
"data": {
"type": "references",
"id": "3",
"attributes": {
"note": {
"en": "Lots of new values, not all clearly defined yet. Any differences in behavior unrelated to new features are expected to be unintentional; please report."
}
},
"relationships": {
"feature": {
"links": {
"self": "https://browsercompat.org/api/v2/references/3/relationships/feature",
"related": "https://browsercompat.org/api/v2/references/3/feature"
},
"data": {
"type": "features",
"id": "5"
}
},
"section": {
"links": {
"self": "https://browsercompat.org/api/v2/references/3/relationships/section",
"related": "https://browsercompat.org/api/v2/references/3/section"
},
"data": {
"type": "sections",
"id": "3"
}
},
"history_current": {
"links": {
"self": "https://browsercompat.org/api/v2/references/3/relationships/history_current",
"related": "https://browsercompat.org/api/v2/references/3/history_current"
},
"data": {
"type": "historical_references",
"id": "3"
}
},
"history": {
"links": {
"self": "https://browsercompat.org/api/v2/references/3/relationships/history",
"related": "https://browsercompat.org/api/v2/references/3/history"
},
"data": [
{
"type": "historical_references",
"id": "3"
}
]
}
}
}
}
Maturities¶
A maturity refers to the maturity of a specification document.
The maturity representation includes:
- attributes
- id (server selected) - Database ID
- slug - A human-friendly identifier for this maturity. When applicable, it matches the key in the KumaScript macro Spec2
- name (localized) - Status name
- relationships
- specifications (many) - Associated specifications. In ID order, changes are ignored.
- history_current (one) - Current historical_maturities. Can be changed to a valid history to revert to that version.
- history (many) - Associated historical_maturities in time order (most recent first). Changes are ignored.
Here is a sample maturity:
{
"links": {
"self": "https://browsercompat.org/api/v2/maturities/1"
},
"data": {
"type": "maturities",
"id": "1",
"attributes": {
"slug": "REC",
"name": {
"en": "Recommendation",
"de": "Empfehlung",
"ja": "勧告",
"ru": "Рекомендация"
}
},
"relationships": {
"specifications": {
"links": {
"self": "https://browsercompat.org/api/v2/maturities/1/relationships/specifications",
"related": "https://browsercompat.org/api/v2/maturities/1/specifications"
},
"data": [
{
"type": "specifications",
"id": "1"
},
{
"type": "specifications",
"id": "2"
},
{
"type": "specifications",
"id": "6"
}
]
},
"history_current": {
"links": {
"self": "https://browsercompat.org/api/v2/maturities/1/relationships/history_current",
"related": "https://browsercompat.org/api/v2/maturities/1/history_current"
},
"data": {
"type": "historical_maturities",
"id": "1"
}
},
"history": {
"links": {
"self": "https://browsercompat.org/api/v2/maturities/1/relationships/history",
"related": "https://browsercompat.org/api/v2/maturities/1/history"
},
"data": [
{
"type": "historical_maturities",
"id": "1"
}
]
}
}
}
}
Users¶
A user represents a person or process that creates, changes, or deletes a resource.
The representation includes:
- attributes
- id (server selected) - Database ID
- username - The user’s email or ID
- created (server selected) - Time that the account was created, in ISO 8601 format.
- agreement - The version of the contribution agreement the user has accepted. “0” for not agreed, “1” for first version, etc.
- permissions - A list of permissions. Permissions include
"change-resource"
(add or change any resource except users or history resources),"delete-resource"
(delete any resource)"import-mdn"
(setup import of an MDN page)
- relationships
- changesets (many) - Associated changesets, in ID order, changes are ignored.
Here’s an example user:
{
"links": {
"self": "https://browsercompat.org/api/v2/users/1"
},
"data": {
"type": "users",
"id": "1",
"attributes": {
"username": "user",
"created": "2016-01-08T22:21:50.254130Z",
"agreement": 0,
"permissions": [
"change-resource",
"delete-resource"
]
},
"relationships": {
"changesets": {
"links": {
"self": "https://browsercompat.org/api/v2/users/1/relationships/changesets",
"related": "https://browsercompat.org/api/v2/users/1/changesets"
},
"data": [
{
"type": "changesets",
"id": "1"
}
]
}
}
}
}
You can also request the authenticated user’s resource:
GET /api/v2/users/me HTTP/1.1
Host: browsercompat.org
Accept: application/vnd.api+json
Authorization: Bearer xxQLNiTUFjRL5En8nBWzSDc5tLWkV2
The response is a redirect to the user’s resource:
HTTP/1.1 302 FOUND
Content-Type: text/html; charset=utf-8
Location: https://browsercompat.org/api/v2/users/1
If the request is made anonymously, then the response is an error:
HTTP/1.1 401 UNAUTHORIZED
Content-Type: application/vnd.api+json
WWW-Authenticate: Bearer realm="api"
{
"errors": [
{
"detail": "Authentication credentials were not provided.",
"status": "401"
}
]
}
Changesets¶
A changeset collects history resources into a logical unit, allowing for
faster reversions and better history display. The changeset can be
auto-created through a POST
, PUT
, or DELETE
to a resource, or it
can be created independently and specified by adding changeset=<ID>
URI
parameter (i.e., PUT /browsers/15?changeset=73
).
The representation includes:
- attributes
- id (server selected) - Database ID
- created (server selected) - When the changeset was created, in ISO 8601 format.
- modified (server selected) - When the changeset was last modified, in ISO 8601 format.
- target_resource_type (write-once, optional) - The name of the primary resource for this changeset, for example “browsers”, “versions”, etc.
- target_resource_id (write-once, optional) - The ID of the primary resource for this changeset.
- closed - True if the changeset is closed to new changes. Auto-created changesets are auto-closed, and cache invalidation is delayed until manually created changesets are closed.
- relationships
- user (one) - The user who initiated this changeset, can not be changed.
- historical_browsers (many) - Associated historical_browsers, in ID order, changes are ignored.
- historical_features (many) - Associated historical_features, in ID order, changes are ignored.
- historical_maturities (many) - Associated historical_maturities, in ID order, changes are ignored.
- historical_sections (many) - Associated historical_sections, in ID order, changes are ignored.
- historical_specifications (many) - Associated historical_specifications, in ID order, changes are ignored.
- historical_supports (many) - Associated historical_supports, in ID order, changes are ignored.
- historical_versions (many) - Associated historical_versions, in ID order, changes are ignored.
Here’s an example changeset resource:
{
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2"
},
"data": {
"type": "changesets",
"id": "2",
"attributes": {
"created": "2016-01-14T17:24:04.159902Z",
"modified": "2016-01-14T17:24:30.537134Z",
"closed": true,
"target_resource_type": null,
"target_resource_id": null
},
"relationships": {
"user": {
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2/relationships/user",
"related": "https://browsercompat.org/api/v2/changesets/2/user"
},
"data": {
"type": "users",
"id": "1"
}
},
"historical_browsers": {
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2/relationships/historical_browsers",
"related": "https://browsercompat.org/api/v2/changesets/2/historical_browsers"
},
"data": [
{
"type": "historical_browsers",
"id": "16"
}
]
},
"historical_features": {
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2/relationships/historical_features",
"related": "https://browsercompat.org/api/v2/changesets/2/historical_features"
},
"data": []
},
"historical_maturities": {
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2/relationships/historical_maturities",
"related": "https://browsercompat.org/api/v2/changesets/2/historical_maturities"
},
"data": []
},
"historical_references": {
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2/relationships/historical_references",
"related": "https://browsercompat.org/api/v2/changesets/2/historical_references"
},
"data": []
},
"historical_sections": {
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2/relationships/historical_sections",
"related": "https://browsercompat.org/api/v2/changesets/2/historical_sections"
},
"data": []
},
"historical_specifications": {
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2/relationships/historical_specifications",
"related": "https://browsercompat.org/api/v2/changesets/2/historical_specifications"
},
"data": []
},
"historical_supports": {
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2/relationships/historical_supports",
"related": "https://browsercompat.org/api/v2/changesets/2/historical_supports"
},
"data": []
},
"historical_versions": {
"links": {
"self": "https://browsercompat.org/api/v2/changesets/2/relationships/historical_versions",
"related": "https://browsercompat.org/api/v2/changesets/2/historical_versions"
},
"data": []
}
}
}
}
Historical Browsers¶
A historical_browser resource represents the state of a browser at a point in time, and who is responsible for that state. The representation includes:
- attributes
- id (server selected) - Database ID
- date (server selected) - The time of this change in ISO 8601
- event (server selected) - The type of event, one of
"created"
,"changed"
, or"deleted"
- archive_data - The browsers representation at this point in time
Here is a sample historical_browser:
{
"links": {
"self": "https://browsercompat.org/api/v2/historical_browsers/17"
},
"data": {
"type": "historical_browsers",
"id": "17",
"attributes": {
"date": "2016-01-14T06:30:59.618000Z",
"event": "created",
"archive_data": {
"type": "browsers",
"id": "17",
"attributes": {
"slug": "konqueror",
"name": {
"en": "Konqueror"
},
"note": {
"en": "First comes the Navigator, then Explorer, and then the Konqueror."
}
},
"relationships": {
"versions": {
"data": []
},
"history_current": {
"data": {
"type": "historical_browsers",
"id": "17"
}
}
},
"links": {
"self": "https://browsercompat.org/api/v2/browsers/17"
}
}
},
"relationships": {
"changeset": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_browsers/17/relationships/changeset",
"related": "https://browsercompat.org/api/v2/historical_browsers/17/changeset"
},
"data": {
"type": "changesets",
"id": "3"
}
},
"browser": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_browsers/17/relationships/browser",
"related": "https://browsercompat.org/api/v2/historical_browsers/17/browser"
},
"data": {
"type": "browsers",
"id": "17"
}
}
}
}
}
Historical Versions¶
A historical_versions resource represents the state of a version at a point in time, and who is responsible for that representation. The representation includes:
- attributes
- id (server selected) - Database ID
- date (server selected) - The time of this change in ISO 8601
- event (server selected) - The type of event, one of
"created"
,"changed"
, or"deleted"
- archive_data - The versions representation at this point in time
Here is a sample historical_version:
{
"links": {
"self": "https://browsercompat.org/api/v2/historical_versions/49"
},
"data": {
"type": "historical_versions",
"id": "49",
"attributes": {
"date": "2016-01-14T07:52:04.749000Z",
"event": "created",
"archive_data": {
"type": "versions",
"id": "49",
"attributes": {
"version": "19.0",
"release_day": "2013-02-19",
"retirement_day": "2013-04-02",
"status": "retired",
"release_notes_uri": {
"en": "https://developer.mozilla.org/en/Firefox/Releases/19",
"de": "https://developer.mozilla.org/de/Firefox/Releases/19",
"es": "https://developer.mozilla.org/es/docs/Firefox_19_para_desarrolladores",
"fr": "https://developer.mozilla.org/fr/Firefox/Versions/19",
"ja": "https://developer.mozilla.org/ja/Firefox/Releases/19",
"ko": "https://developer.mozilla.org/ko/Firefox/Releases/19",
"pl": "https://developer.mozilla.org/pl/Firefox/Releases/19",
"pt-PT": "https://developer.mozilla.org/pt-PT/Firefox/Releases/19",
"ru": "https://developer.mozilla.org/ru/Firefox/Releases/19",
"zh-CN": "https://developer.mozilla.org/zh-CN/Firefox/Releases/19",
"zh-TW": "https://developer.mozilla.org/zh-TW/Firefox/Releases/19"
},
"note": {
"en": "Released to beta channel on January 10, 2013"
},
"order": 6
},
"relationships": {
"browser": {
"data": {
"type": "browsers",
"id": "7"
}
},
"history_current": {
"data": {
"type": "historical_versions",
"id": "49"
}
}
},
"links": {
"self": "https://browsercompat.org/api/v2/versions/49"
}
}
},
"relationships": {
"changeset": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_versions/49/relationships/changeset",
"related": "https://browsercompat.org/api/v2/historical_versions/49/changeset"
},
"data": {
"type": "changesets",
"id": "13"
}
},
"version": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_versions/49/relationships/version",
"related": "https://browsercompat.org/api/v2/historical_versions/49/version"
},
"data": {
"type": "versions",
"id": "49"
}
}
}
}
}
Historical Features¶
A historical_features resource represents the state of a feature at a point in time, and who is responsible for that representation. The representation includes:
- attributes
- id (server selected) - Database ID
- date (server selected) - The time of this change in ISO 8601
- event (server selected) - The type of event, one of
"created"
,"changed"
, or"deleted"
- archive_data - The features representation at this point in time
Here is a sample historical_feature:
{
"links": {
"self": "https://browsercompat.org/api/v2/historical_features/19"
},
"data": {
"type": "historical_features",
"id": "19",
"attributes": {
"date": "2016-01-14T08:02:33.132000Z",
"event": "created",
"archive_data": {
"type": "features",
"id": "17",
"attributes": {
"slug": "web-html-element",
"mdn_uri": null,
"experimental": false,
"standardized": true,
"stable": true,
"obsolete": false,
"name": {
"en": "Element"
}
},
"relationships": {
"parent": {
"data": {
"type": "features",
"id": "16"
}
},
"children": {
"data": []
},
"references": {
"data": []
},
"history_current": {
"data": {
"type": "historical_features",
"id": "19"
}
}
},
"links": {
"self": "https://browsercompat.org/api/v2/features/17"
}
}
},
"relationships": {
"changeset": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_features/19/relationships/changeset",
"related": "https://browsercompat.org/api/v2/historical_features/19/changeset"
},
"data": {
"type": "changesets",
"id": "27"
}
},
"feature": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_features/19/relationships/feature",
"related": "https://browsercompat.org/api/v2/historical_features/19/feature"
},
"data": {
"type": "features",
"id": "17"
}
}
}
}
}
Historical Supports¶
A historical_supports resource represents the state of a support at a point in time, and who is responsible for that representation. The representation includes:
- attributes
- id (server selected) - Database ID
- date (server selected) - The time of this change in ISO 8601
- event (server selected) - The type of event, one of
"created"
,"changed"
, or"deleted"
- archive_data - The supports representation at this point in time
Here is a sample historical_support:
{
"links": {
"self": "https://browsercompat.org/api/v2/historical_supports/28"
},
"data": {
"type": "historical_supports",
"id": "28",
"attributes": {
"date": "2016-01-14T08:08:03.582000Z",
"event": "created",
"archive_data": {
"type": "supports",
"id": "28",
"attributes": {
"support": "partial",
"prefix": "-o",
"prefix_mandatory": true,
"alternate_name": "float",
"alternate_mandatory": true,
"requires_config": "future=true",
"default_config": "future=false",
"protected": true,
"note": {
"en": "This is fake."
}
},
"relationships": {
"version": {
"data": {
"type": "versions",
"id": "37"
}
},
"feature": {
"data": {
"type": "features",
"id": "6"
}
},
"history_current": {
"data": {
"type": "historical_supports",
"id": "28"
}
}
},
"links": {
"self": "https://browsercompat.org/api/v2/supports/28"
}
}
},
"relationships": {
"changeset": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_supports/28/relationships/changeset",
"related": "https://browsercompat.org/api/v2/historical_supports/28/changeset"
},
"data": {
"type": "changesets",
"id": "36"
}
},
"support": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_supports/28/relationships/support",
"related": "https://browsercompat.org/api/v2/historical_supports/28/support"
},
"data": {
"type": "supports",
"id": "28"
}
}
}
}
}
Historical Specifications¶
A historical_specifications resource represents the state of a specification at a point in time, and who is responsible for that representation. The representation includes:
- attributes
- id (server selected) - Database ID
- date (server selected) - The time of this change in ISO 8601
- event (server selected) - The type of event, one of
"created"
,"changed"
, or"deleted"
- archive_data - The specifications representation at this point in time
- relationships
- changeset (one) - Associated changeset, can not be changed.
- specification (one) - Associated specification, can not be changed
Here is a sample historical_specification:
{
"links": {
"self": "https://browsercompat.org/api/v2/historical_specifications/7"
},
"data": {
"type": "historical_specifications",
"id": "7",
"attributes": {
"date": "2016-01-14T08:07:26.056000Z",
"event": "created",
"archive_data": {
"type": "specifications",
"id": "7",
"attributes": {
"slug": "css3-ruby",
"mdn_key": "CSS3 Ruby",
"name": {
"en": "CSS Ruby Layout Module Level 1"
},
"uri": {
"en": "http://dev.w3.org/csswg/css-ruby/"
}
},
"relationships": {
"maturity": {
"data": {
"type": "maturities",
"id": "2"
}
},
"sections": {
"data": []
},
"history_current": {
"data": {
"type": "historical_specifications",
"id": "7"
}
}
},
"links": {
"self": "https://browsercompat.org/api/v2/specifications/7"
}
}
},
"relationships": {
"changeset": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_specifications/7/relationships/changeset",
"related": "https://browsercompat.org/api/v2/historical_specifications/7/changeset"
},
"data": {
"type": "changesets",
"id": "40"
}
},
"specification": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_specifications/7/relationships/specification",
"related": "https://browsercompat.org/api/v2/historical_specifications/7/specification"
},
"data": {
"type": "specifications",
"id": "7"
}
}
}
}
}
Historical Sections¶
A historical_sections resource represents the state of a section at a point in time, and who is responsible for that representation. The representation includes:
- attributes
- id (server selected) - Database ID
- date (server selected) - The time of this change in ISO 8601
- event (server selected) - The type of event, one of
"created"
,"changed"
, or"deleted"
- archive_data - The sections representation at this point in time
Here is a sample historical_section:
{
"links": {
"self": "https://browsercompat.org/api/v2/historical_sections/8"
},
"data": {
"type": "historical_sections",
"id": "8",
"attributes": {
"date": "2016-01-14T08:05:47.948000Z",
"event": "created",
"archive_data": {
"type": "sections",
"id": "8",
"attributes": {
"number": {
"en": "2.1"
},
"name": {
"en": "Ruby-specific 'display' Values"
},
"subpath": {
"en": "#ruby-display"
}
},
"relationships": {
"specification": {
"data": {
"type": "specifications",
"id": "5"
}
},
"history_current": {
"data": {
"type": "historical_sections",
"id": "8"
}
}
},
"links": {
"self": "https://browsercompat.org/api/v2/sections/8"
}
}
},
"relationships": {
"changeset": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_sections/8/relationships/changeset",
"related": "https://browsercompat.org/api/v2/historical_sections/8/changeset"
},
"data": {
"type": "changesets",
"id": "46"
}
},
"section": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_sections/8/relationships/section",
"related": "https://browsercompat.org/api/v2/historical_sections/8/section"
},
"data": {
"type": "sections",
"id": "8"
}
}
}
}
}
Historical References¶
A historical_references resource represents the state of a reference at a point in time, and who is responsible for that representation. The representation includes:
- attributes
- id (server selected) - Database ID
- date (server selected) - The time of this change in ISO 8601
- event (server selected) - The type of event, one of
"created"
,"changed"
, or"deleted"
- archive_data - The references representation at this point in time
Here is a sample historical_reference:
{
"links": {
"self": "https://browsercompat.org/api/v2/historical_references/5"
},
"data": {
"type": "historical_references",
"id": "5",
"attributes": {
"date": "2016-02-23T10:41:02.217000Z",
"event": "created",
"archive_data": {
"type": "references",
"id": "5",
"attributes": {
"note": null
},
"relationships": {
"feature": {
"data": {
"type": "features",
"id": "18"
}
},
"section": {
"data": {
"type": "sections",
"id": "6"
}
},
"history_current": {
"data": {
"type": "historical_references",
"id": "5"
}
}
},
"links": {
"self": "https://browsercompat.org/api/v2/references/5"
}
}
},
"relationships": {
"changeset": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_references/5/relationships/changeset",
"related": "https://browsercompat.org/api/v2/historical_references/5/changeset"
},
"data": {
"type": "changesets",
"id": "29"
}
},
"reference": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_references/5/relationships/reference",
"related": "https://browsercompat.org/api/v2/historical_references/5/reference"
},
"data": {
"type": "references",
"id": "5"
}
}
}
}
}
Historical Maturities¶
A historical_maturities resource represents the state of a maturity at a point in time, and who is responsible for that representation. The representation includes:
- attributes
- id (server selected) - Database ID
- date (server selected) - The time of this change in ISO 8601
- event (server selected) - The type of event, one of
"created"
,"changed"
, or"deleted"
- archive_data - The maturities representation at this point in time
Here is a sample historical_maturity:
{
"links": {
"self": "https://browsercompat.org/api/v2/historical_maturities/10"
},
"data": {
"type": "historical_maturities",
"id": "10",
"attributes": {
"date": "2016-01-14T08:04:58.382000Z",
"event": "created",
"archive_data": {
"type": "maturities",
"id": "10",
"attributes": {
"slug": "Idea",
"name": {
"en": "Idea"
}
},
"relationships": {
"history_current": {
"data": {
"type": "historical_maturities",
"id": "10"
}
}
},
"links": {
"self": "https://browsercompat.org/api/v2/maturities/10"
}
}
},
"relationships": {
"changeset": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_maturities/10/relationships/changeset",
"related": "https://browsercompat.org/api/v2/historical_maturities/10/changeset"
},
"data": {
"type": "changesets",
"id": "51"
}
},
"maturity": {
"links": {
"self": "https://browsercompat.org/api/v2/historical_maturities/10/relationships/maturity",
"related": "https://browsercompat.org/api/v2/historical_maturities/10/maturity"
},
"data": {
"type": "maturities",
"id": "10"
}
}
}
}
}