Sample code is often the easiest way to learn how to use an API. For links
to Google Digital Asset Links samples, select a programming language below.

The samples use the Google API [client libraries](https://developers.google.com/digital-asset-links/v1/libraries).

If a library's samples page does not yet include a sample for the
Google Digital Asset Links, you can still use that library, and you might be able
to adapt samples that are provided for a different Google API.

### Python

Here is a simple Python example that lists all statements
made by a given website, then checks whether that site makes
the `delegate_permission/common.handle_all_urls` statement
about a specific Android app.

> [!NOTE]
> In order to use this code sample, you first need to activate the `digitalassetlinks` API for your project, and you need to replace the string `API_KEY` below with your own API key. See [these instructions](https://developers.google.com/digital-asset-links/v1/consuming#validating_using_the_api) if you are unfamiliar with the process.

```python
#!/usr/bin/python

import urllib

def ListWeb(source_web_site, relation):
  return urllib.urlopen(
      'https://digitalassetlinks.googleapis.com/v1/'
      'statements:list?source.web.site=%s&relation=%s'
      % (urllib.quote(source_web_site, ''),
         urllib.quote(relation, ''))).read()

def CheckWebToAndroid(source_web_site, relation,
                      target_package_name, target_sha256_fingerprint):
  return urllib.urlopen(
      'https://digitalassetlinks.googleapis.com/v1/'
      'assetlinks:check?source.web.site=%s&relation=%s'
      '&target.android_app.package_name=%s'
      '&target.android_app.certificate.sha256_fingerprint=%s'
      '&key=API_KEY'
      % (urllib.quote(source_web_site, ''),
         urllib.quote(relation, ''),
         urllib.quote(target_package_name, ''),
         urllib.quote(target_sha256_fingerprint, ''))).read()

def main():
  print '================================== List() Output ======='
  print ListWeb('http://example.digitalassetlinks.org',
                'delegate_permission/common.handle_all_urls')
  print '================================== Check() Output ======'
  print CheckWebToAndroid(
      'http://example.digitalassetlinks.org',
      'delegate_permission/common.handle_all_urls',
      'org.digitalassetlinks.sampleapp',
      '10:39:38:EE:45:37:E5:9E:8E:E7:92:F6:54:50:4F:B8:34:6F:C6:B3:46:D0:BB:C4:41:5F:C3:39:FC:FC:8E:C1')

if __name__ == '__main__':
  main()
```

### JavaScript

Here is a simple JavaScript example that lets you list all statements made by a given website
and also check for the presence of a given statement in that website.

> [!NOTE]
> In order to use this code sample, you first need to activate the `digitalassetlinks` API for your project, and you need to replace the string `API_KEY` below with your own API key. See [these instructions](https://developers.google.com/digital-asset-links/v1/consuming#validating_using_the_api) if you are unfamiliar with the process.

```javascript
<html>
  <head>
    <script type="text/javascript">
      function executeRequest(request, outElement) {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
          if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200) {
              outElement.value = xmlhttp.responseText;
            } else {
              outElement.value = "Error running request. Response: "
                  + xmlhttp.responseText;
            }
          }
        };
        xmlhttp.open('GET', 'https://digitalassetlinks.googleapis.com/v1/' +
            request, true);
        xmlhttp.send();
      }

      function executeListRequest() {
        var sourceWebSite = encodeURIComponent(
            document.getElementById('list_source').value);
        var relation = encodeURIComponent(
            document.getElementById('list_relation').value);
        var outputTextArea = document.getElementById('list_response');
        executeRequest('statements:list?source.web.site=' + sourceWebSite
            + '&relation=' + relation, outputTextArea);
      }

      function executeCheckRequest() {
        var sourceWebSite = encodeURIComponent(
            document.getElementById('check_source').value);
        var relation = encodeURIComponent(
            document.getElementById('check_relation').value);
        var targetPackageName = encodeURIComponent(
            document.getElementById('check_target_package').value);
        var targetSha256Fingerprint = encodeURIComponent(
            document.getElementById('check_target_sha256_fingerprint').value);
        var outputTextArea = document.getElementById('check_response');
        executeRequest('assetlinks:check?source.web.site=' + sourceWebSite
            + '&relation=' + relation
            + '&target.android_app.package_name=' + targetPackageName
            + '&target.android_app.certificate.sha256_fingerprint='
            +     targetSha256Fingerprint
            + '&key=API_KEY',
            outputTextArea);
      }

    </script>
  </head>
  <body>
    <h2>List()</h2>
    <label>Source Web Asset:</label>
    <input type="text" id="list_source"
        value="http://example.digitalassetlinks.org">
     
    <label>Relation:</label>
    <input type="text" id="list_relation"
        value="delegate_permission/common.handle_all_urls">
     
    <button type="button" onclick="executeListRequest()">Run</button><br>
    <textarea rows="20" cols="80" id="list_response"></textarea>
    <hr>
    <h2>Check()</h2>
    <label>Source Web Asset:</label>
    <input type="text" id="check_source"
        value="http://example.digitalassetlinks.org">
     
    Relation:
    <input type="text" id="check_relation"
        value="delegate_permission/common.handle_all_urls"><br>
     
    <label>Target Android Package:</label>
    <input type="text" id="check_target_package"
        value="org.digitalassetlinks.sampleapp">
     
    <label>Target Android Certificate Fingerprint:</label>
    <input type="text" id="check_target_sha256_fingerprint"
        value="10:39:38:EE:45:37:E5:9E:8E:E7:92:F6:54:50:4F:B8:34:6F:C6:B3:46:D0:BB:C4:41:5F:C3:39:FC:FC:8E:C1">
     
    <button type="button" onclick="executeCheckRequest()">Run</button><br>
    <textarea rows="20" cols="80" id="check_response"></textarea>
  </body>
</html>
```

### Go

There are no Go samples specifically for this version of the Google Digital Asset Links.

However, you may be able to adapt one of the other [Go samples](https://github.com/google/google-api-go-client/tree/master/examples).

### Java

There are no Java samples specifically for this version of the Google Digital Asset Links.

You may be able to adapt one of the other
[Java samples](https://developers.google.com/api-client-library/java/apis/).

### .NET

There are no .NET samples specifically for this version of the
Google Digital Asset Links.

However, you may be able to adapt one of the other
[.NET samples](https://developers.google.com/api-client-library/dotnet/apis/).

### Objective-C

There are no Objective-C samples specifically for this version of the
Google Digital Asset Links.

However, you may be able to adapt one of the other
[Objective-C samples](https://github.com/google/google-api-objectivec-client-for-rest/tree/master/Examples).

### PHP

There are no PHP samples specifically for this version of the
Google Digital Asset Links.

However, you may be able to adapt one of the other
[PHP samples](https://github.com/google/google-api-php-client/tree/master/examples).

### Ruby

There are no Ruby samples specifically for this version of the
Google Digital Asset Links.

However, you may be able to adapt one of the other
[Ruby samples](https://github.com/google/google-api-ruby-client-samples).