API landing page template

Note: Remove this whole explanatory note before publishing

Page front matter:

The front matter at the top of the page is used to define "page metadata". The values should be updated appropriately for the particular interface.

title: NameOfTheAPI API
slug: Web/API/NameOfTheAPI_API
page-type: web-api-overview
  - experimental
  - deprecated
  - non-standard

Title heading displayed at the top of the page. This is the name of the API followed by the text "API": NameOfTheAPI API. For example, WebXR Device has a title of WebXR Device API, Fetch has a title of Fetch API.


The end of the URL path after https://developer.mozilla.org/en-US/docs/). This will be formatted like Web/API/NameOfTheAPI_API. For example, the WebXR Device API's slug is Web/API/WebXR_Device_API.


The page-type key for Web/API landing pages is always web-api-overview.


Flags describing the status of this feature. An array which may contain one or more of the following: experimental, deprecated, non-standard. This key should not be set manually: it is set automatically based on values in the browser compatibility data for the feature. See "How to add or update feature statuses".

Top-of-page macros

A number of macro calls appear at the top of the content section (immediately below the page front matter). These macros are automatically added by the toolchain (there is no need to add/remove):

  • {{SeeCompatTable}} — this generates a This is an experimental technology banner that indicates the technology is experimental. If it is experimental, and the technology is hidden behind a pref in Firefox, you should also fill in an entry for it in the Experimental features in Firefox page.
  • {{Deprecated_Header}} — this generates a Deprecated banner that indicates that use of the technology is discouraged.
  • {{Non-standard_Header}} — this generates a Non-standard banner that indicates that the feature is not part of any specification.

You should update or delete the following macros according to the advice below:

  • {{SecureContext_Header}} — this generates a Secure context banner that indicates the technology is only available in a secure context. If it isn't, then you can remove the macro call. If it is, then you should also fill in an entry for it in the Features restricted to secure contexts page.
  • {{APIRef("GroupDataName")}} — this generates the left-hand reference sidebar showing quick reference links related to the current page. For example, every page in the WebVR API has the same sidebar, which points to the other pages in the API. To generate the correct sidebar for your API, you need to add a GroupData entry to our GitHub repo, and include the entry's name inside the macro call in place of GroupDataName. See our API reference sidebars guide for information on how to do this.
  • Remember to remove the {{MDNSidebar}} macro when you copy this page.

Do not provide status header macros manually. Refer to the section "How to add or update feature statuses" to add these statuses to the page.

Samples of the Secure context, Experimental, Deprecated, and Non-standard banners are shown right after this note block.

Browser compatibility

API landing pages optionally have a browser compatibility section that shows compatibility tables for one or more of the most important interfaces in the API. If the compatibility is similar for most interfaces in the API, then often just one compatibility table is needed. If compatibility across the API is complicated/impossible to capture in a few tables, this sections should be omitted.

To fill in the browser compatibility section, you may first need to create/update entries for the API interfaces in our Browser compat data repo — see our guide on how to do this.

Add the {{Compat("path.to.feature.Interface")}} macro for each interface for which compatibility information is required, replacing the "path.to.feature.Interface" argument with the path to the desired interface in the browser compatibility data.


API landing pages optionally have a specifications section that lists the relevant specification(s) for each interface. Often there is just one specification covering all interfaces in the API.

To fill in the specifications section, you may first need to create/update entries for interfaces in the Browser compat data repo to include specification data — see our guide on how to do this.

Use the {{specifications("path.to.feature.Interface")}} macro to add tables for the main specifications.

Remember to remove this whole explanatory note before publishing

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Begin the content on the page with an introductory paragraph — start by naming the API and saying what it does. This should ideally be one or two short sentences.

Concepts and usage

In this section, describe the API's purpose and usage cases in a bit more detail — why was a need recognized for it? What problems does it solve? What concepts does it involve? How do you use it, from a high-level perspective?

Don't go into a lot of detail in this section, and don't include code examples. If there are a lot of concepts to explain around this API, you should explain them in a separate "Fundamentals" or "Concepts" article (e.g. Fundamentals of WebXR). For a practical usage guide with code examples, you should include a "Usage…" article in your API docs (e.g. Using the WebVR API).

To help improve content discoverability and SEO, keep the following tips in mind:


To use the domxref macro, remove the backticks and backslash in the markdown file.


Include a brief description of the interface and what it does here. Include one term and definition for each interface or dictionary.

Extensions to other interfaces

The name of interface extends the following APIs, adding the listed features.

Interface 1


Description of the feature of Interface#1 that is added to that API by the API you are currently documenting. One *term and definition for each feature. If this API doesn't extend any other interfaces, you can delete these sections.

Interface 2


Description of the feature of Interface#2 that is added to that API by the API you are currently documenting, etc.


Note that we use the plural "Examples" even if the page only contains one example.

A descriptive heading

Each example must have an H3 heading naming the example. The heading should be descriptive of what the example is doing. For example, "A simple example" does not say anything about the example and therefore, not a good heading. The heading should be concise. For a longer description, use the paragraph after the heading.

See our guide on how to add code examples for more information.

Note: Sometimes you will want to link to examples given on another page.

Scenario 1: If you have some examples on this page and some more examples on another page:

Include an H3 heading (###) for each example on this page and then a final H3 heading (###) with the text "More examples", under which you can link to the examples on other pages. For example:

## Examples

### Using the fetch API

Example of Fetch

### More examples

Links to more examples on other pages

Scenario 2: If you only have examples on another page and none on this page:

Don't add any H3 headings; just add the links directly under the H2 heading "Examples". For example:

## Examples

For examples of this API, see [the page on fetch()](https://example.org).




To use this macro, remove the backticks and backslash in the markdown file.

Browser compatibility



To use this macro, remove the backticks and backslash in the markdown file.

See also

Include links to reference pages and guides related to the current API. For more guidelines, see the See also section in the Writing style guide.

  • link1
  • link2
  • external_link (year)