Statement List Syntax

A statement list is a JSON-encoded file or snippet in a well-known location.

Location

See Creating a statement list to learn where this list should be stored.

Syntax

The statement list or snippet consists of a JSON array of one or more website or app statements as JSON objects. These statements can be in any order. Here is the general syntax:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relation
An array of one or more strings that describe the relation being declared about the target. See the list of defined relation strings. Example: delegate_permission/common.handle_all_urls
target
The target asset to whom this statement applies. Available target types:

Example statement list

Here is an example website statement list that contains statements about both websites and apps: http://example.digitalassetlinks.org/.well-known/assetlinks.json

Scaling to dozens of statements or more

In some cases, a principal might want to make many different statements about different targets, or there might be a need to issue statements from different principals to the same set of targets. For example, a website may be available on many different per-country Top Level Domains, and all of them may want to make a statement about the same mobile app.

For these situations, include statements can be helpful. Using this mechanism, you can set up pointers from many different principals to one central location, which defines statements for all of the principals.

For example, you might decide that the central location should be `https://example.com/includedstatements.json`. This file can be configured to contain the same content as in the examples above.

To set up a pointer from a web site to the include file, change `https://example.com/.well-known/assetlinks.json` to:

[{
  "include": "https://example.com/includedstatements.json"
}]

To set up a pointer from an Android app to the include file, change `res/values/strings.xml` to:

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

More Information

There is a more detailed explanation of the statement list format and the underlying concepts in our specification document.